課程
/前端開發(fā)
/JavaScript
/Ajax全接觸
下載過里的文件Jsonp那個不能用,一直跳發(fā)生錯誤:200,彈框
2016-04-14
源自:Ajax全接觸 6-2
正在回答
刪除上面的,就不能跨域了
mdzz。。試了好久。。原來我配置的環(huán)境中連8080端口都沒有開,服務(wù)器怎么訪問你呢?
這個跨域的例子需要在一臺電腦上一個服務(wù)器開2個端口,當然指的是后臺用php的,,,之前我用nodejs開的不行的。。
就這個例子而言,我使用的是wamp開2個端口,然后使用jsonp技術(shù)跨域訪問,老師使用的方法沒有問題,只是路徑要改一下,改成本機的對應(yīng)的路徑就OK了。當然你如果不跨域訪問,也可以像樓上一樣更改
已經(jīng)找出錯誤,并修正。
看看是否是下面2個問題:
1.URL地址錯誤:
url:?"http://127.0.0.1:8080/ajaxdemo/serverjsonp.php?
jqueryjsonp.html文件中,ajax文件中的URL地址是否對應(yīng),如果不對應(yīng),會出現(xiàn)錯誤:
//調(diào)試面板console錯誤信息: Failed?to?load?resource:?net::ERR_CONNECTION_REFUSED //調(diào)試面板Network里具體頁面的header信息--request?header里顯示錯誤: Provisional?headers?are?shown
這種情況,是url地址錯誤導(dǎo)致。
解決方法:
查看url地址是否正確。
上面的url端口號為8000,我本地的端口號是80,因此需要改端口號為本地的端口號。(視頻中使用軟件做服務(wù)器時因為端口沖突,改過端口后,因此本地測試時需要進行調(diào)整。)
路徑是否正確。根目錄下的ajaxdemo文件夾下,這里我的本地目錄是在ajax文件夾下,因此也需要進行相應(yīng)修改。
修改過后的正確的url地址為:
url:?"http://127.0.0.1:80/ajax/serverjsonp.php?
2. 服務(wù)器文件serverjsonp文件錯誤。
將文件里修改過的jsonp內(nèi)容還原為json內(nèi)容時,改動錯誤,會導(dǎo)致alert錯誤(提示“發(fā)生錯誤:200”)。
這時,調(diào)試面板Network里具體頁面的header選項卡頁面里,明明顯示status為200,應(yīng)該已經(jīng)成功了,為啥還會彈出200錯誤呢?而且Response選項卡頁面里,也是有成功信息的,為啥還會錯誤呢?
原因:serverjsonp文件錯誤
修改serverjsonp文件:
//通過員工編號搜索員工 function?search(){ $jsonp?=?$_GET["callback"]; //檢查是否有員工編號的參數(shù) //isset檢測變量是否設(shè)置;empty判斷值為否為空 //超全局變量?$_GET?和?$_POST?用于收集表單數(shù)據(jù) if?(!isset($_GET["number"])?||?empty($_GET["number"]))?{ echo?$jsonp?.?'({"success":false,"msg":"參數(shù)錯誤"})'; return; } //函數(shù)之外聲明的變量擁有?Global?作用域,只能在函數(shù)以外進行訪問。 //global?關(guān)鍵詞用于訪問函數(shù)內(nèi)的全局變量 global?$staff; //獲取number參數(shù) $number?=?$_GET["number"]; $result?=?$jsonp?.?'({"success":false,"msg":"沒有找到員工。"})'; //遍歷$staff多維數(shù)組,查找key值為number的員工是否存在,如果存在,則修改返回結(jié)果 foreach?($staff?as?$value)?{ if?($value["number"]?==?$number)?{ $result?=?$jsonp?.?'({"success":true,"msg":"找到員工:員工編號:'?.?$value["number"]?. ',員工姓名:'?.?$value["name"]?.? ',員工性別:'?.?$value["sex"]?.? ',員工職位:'?.?$value["job"]?.?'"})'; break; } } ????echo?$result; }
將上述代碼改為:
//通過員工編號搜索員工 function?search(){ //檢查是否有員工編號的參數(shù) //isset檢測變量是否設(shè)置;empty判斷值為否為空 //超全局變量?$_GET?和?$_POST?用于收集表單數(shù)據(jù) if?(!isset($_GET["number"])?||?empty($_GET["number"]))?{ echo?'{"success":false,"msg":"參數(shù)錯誤"}'; return; } //函數(shù)之外聲明的變量擁有?Global?作用域,只能在函數(shù)以外進行訪問。 //global?關(guān)鍵詞用于訪問函數(shù)內(nèi)的全局變量 global?$staff; //獲取number參數(shù) $number?=?$_GET["number"]; $result?=??'{"success":false,"msg":"沒有找到員工。"}'; //遍歷$staff多維數(shù)組,查找key值為number的員工是否存在,如果存在,則修改返回結(jié)果 foreach?($staff?as?$value)?{ if?($value["number"]?==?$number)?{ $result?=??'{"success":true,"msg":"找到員工:員工編號:'?.?$value["number"]?. ',員工姓名:'?.?$value["name"]?.? ',員工性別:'?.?$value["sex"]?.? ',員工職位:'?.?$value["job"]?.?'"}'; break; } } ????echo?$result; }
注意改動位置:
//刪除: $jsonp?=?$_GET["callback"]; $result?=?$jsonp?.?'({"success":false,"msg":"沒有找到員工。"})';?//改為: $result?=??'{"success":false,"msg":"沒有找到員工。"}'; //這里刪除$jsonp.,同事也要刪除''中的()號。
吧主的問題就是這個()號引起的,將其刪除,應(yīng)該就可以正常運行了。
qq_喬小瑪_0
我的也是錯誤,錯誤提示:
Request Header下提示:
Provisional headers are shown。
將其改動成XHR2,還是會出現(xiàn)這個錯誤。
type為get時候 ?dateType為"jsonp"
我就改了里面的PHP鏈接地址
舉報
本課程通過一個案例,講解Ajax的相關(guān)概念原理實現(xiàn)方式和應(yīng)用
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-06-26
刪除上面的,就不能跨域了
2016-06-20
mdzz。。試了好久。。原來我配置的環(huán)境中連8080端口都沒有開,服務(wù)器怎么訪問你呢?
這個跨域的例子需要在一臺電腦上一個服務(wù)器開2個端口,當然指的是后臺用php的,,,之前我用nodejs開的不行的。。
就這個例子而言,我使用的是wamp開2個端口,然后使用jsonp技術(shù)跨域訪問,老師使用的方法沒有問題,只是路徑要改一下,改成本機的對應(yīng)的路徑就OK了。當然你如果不跨域訪問,也可以像樓上一樣更改
2016-05-07
已經(jīng)找出錯誤,并修正。
看看是否是下面2個問題:
1.URL地址錯誤:
jqueryjsonp.html文件中,ajax文件中的URL地址是否對應(yīng),如果不對應(yīng),會出現(xiàn)錯誤:
這種情況,是url地址錯誤導(dǎo)致。
解決方法:
查看url地址是否正確。
上面的url端口號為8000,我本地的端口號是80,因此需要改端口號為本地的端口號。(視頻中使用軟件做服務(wù)器時因為端口沖突,改過端口后,因此本地測試時需要進行調(diào)整。)
路徑是否正確。根目錄下的ajaxdemo文件夾下,這里我的本地目錄是在ajax文件夾下,因此也需要進行相應(yīng)修改。
修改過后的正確的url地址為:
2. 服務(wù)器文件serverjsonp文件錯誤。
將文件里修改過的jsonp內(nèi)容還原為json內(nèi)容時,改動錯誤,會導(dǎo)致alert錯誤(提示“發(fā)生錯誤:200”)。
這時,調(diào)試面板Network里具體頁面的header選項卡頁面里,明明顯示status為200,應(yīng)該已經(jīng)成功了,為啥還會彈出200錯誤呢?而且Response選項卡頁面里,也是有成功信息的,為啥還會錯誤呢?
原因:serverjsonp文件錯誤
解決方法:
修改serverjsonp文件:
將上述代碼改為:
注意改動位置:
吧主的問題就是這個()號引起的,將其刪除,應(yīng)該就可以正常運行了。
2016-05-06
我的也是錯誤,錯誤提示:
Request Header下提示:
Provisional headers are shown。
將其改動成XHR2,還是會出現(xiàn)這個錯誤。
2016-05-02
type為get時候 ?dateType為"jsonp"
2016-04-14
我就改了里面的PHP鏈接地址