這幾天沒事,我有一個好友,讓我幫他做一個機器人對話demo, 我說 看看有沒有時間(其實自己一臉懵逼)
然后百度了一下,發現了一個機器人 -(連接就不弄出來了,可以私底下交流) ,,我是用這個的

好 就這個了,基本的對話都可以實現, 打算接她的url 來個偷梁換柱(哈哈)
獲取他的實現對話地址 ,發現了
{"content":"suggest:你好"} 這不就是我剛剛輸入的嘛?
然后找到他返回的結果

沒錯,就是他了
然后自己使用ajax ,對他接口進行封裝(此出代碼 就不弄出來了,畢竟這是別人的接口,搞的滿大街都這樣弄,人家怎么賺錢...)
$.ajax({ 2 type:"get", //請求方式 4 url:"地址", 8 data:{"query":"civilnews"}, //請求參數,用戶輸入參數 9 10 beforeSend: function() { 11 //請求前的處理 12 }, 13 14 success: function(data) { 15 //請求成功處理,和本地回調完全一樣 16 }, 17 18 complete: function() { 19 //請求完成的處理 20 }, 21 22 error: function(error) {
console.log(error) 23 //請求出錯處理 24 } 25 });
結果報錯
自己貼代碼百度,然后才知道,這是跨域問題引起的,事實也是,你調用別人接口,怎么可能服務地址相同呢?
不說了,自己解決
百度 看了看 有三種解決方法(我所知道的)
如何解決ajax跨域
- JSONP方式
- CORS方式
- 代理請求方式
目前也沒有什么好的辦法,加上也趕時間,看了一下,發現jsonp方法最簡單,便捷
於是就選擇了他
1 $.ajax({
2 type:"get", //請求方式
4 url:"http://www.domain.net/url",
5 dataType:"jsonp", //跨域json請求一定是jsonp
6 jsonp: "callbackparam", //跨域請求的參數名,默認是callback
7 //jsonpCallback:"successCallback", //自定義跨域參數值,回調函數名也是一樣,默認為jQuery自動生成的字符串
8 data:{"query":"civilnews"}, //請求參數
9
10
14 success: function(data) {
15 //請求成功處理,和本地回調完全一樣
16 },
17
error: function(error) {
console.log(error)
23 //請求出錯處理
24 }
25 });
ok 現在刷新重新輸入,就可以獲取返回的結果了
(代碼放在公司的...)
