ajax跨域请求的问题
使用getJson跨域請求,需要向服務器發送一個參數callback=?
$.getJSON("http://appcenter.mobitide.com/admin/appSearch.php?callback=?",{keyboard: keyboardval,searchget:1,page:1}.... $(function(){$('#search_btn').click(function (){var keyboardval = $('#search').val();$.getJSON("http://appcenter.mobitide.com/admin/appSearch.php?callback=?",{keyboard: keyboardval,searchget:1,page:1},function(data){if(data.err_msg == "success"){appendData(data,keyboardval,'');}else{var s = $("#search").val();var msg = '暫時沒有'+'<span style="color:#2c7fd2;">"'+s+'"'+'</span>相關的搜索內容'$(".search_ts").html(msg)}});?
服務器端返回:需要返回callback這個參數,返回json數據格式應該如這樣:string message = "jsonp1294734708682({\"userid\":0,\"username\":\"null\"})";
Jquery 在每次跨域發送請求時都會有callback這個參數,其實這個參數的值就是回調函數名稱,所以,服務器端在發送json數據時,應該把這個參數放到前面,這個參數的值往往是隨機生成的,如:jsonp1294734708682,同時也可以通過 $.ajax 方法設置 callback 方法的名稱。明白了原理后,服務器端應該這樣發送數據:
string message = "jsonp1294734708682({\"userid\":0,\"username\":\"null\"})";
這樣,json 數據 {\"userid\":0,\"username\":\"null\"} 就作為了 jsonp1294734708682 回調函數的一個參數
跨域獲得Json時invalid label的解決辦法:
服務器端在輸出 Json 數據時,前面加上 callback 參數的值,如:jsonp1294734708682({\"userid\":0,\"username\":\"null\"})
詳細出處參考:http://www.jb51.net/article/25970.htm#50347-tsina-1-20339-fe90445b441dc02e06e924681e164bcd
轉載于:https://www.cnblogs.com/RightDear/p/3285122.html
總結
以上是生活随笔為你收集整理的ajax跨域请求的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ruby:字符集和编码学习总结
- 下一篇: java--用 * 打印出各种图形(新手