在您的程式碼片段中,您嘗試從使用jQuery 的AJAX 功能託管在不同域上的服務。但是,跨域 AJAX 請求需要額外考慮才能成功。
預設情況下,瀏覽器將 AJAX 請求限制為同源 URL出於安全考慮。為了克服這個問題,您必須實作 JSONP(帶有 Padding 的 JSON),它允許您使用 <script> 來發出跨域請求。 </script>
在你的伺服器端程式碼中,你需要支援方法注入。當您將 jQuery 與「dataType: 'jsonp'」一起使用時,它會使用隨機產生的方法名稱將查詢參數附加到 URL。然後,您的伺服器必須使用此方法名稱將 JSON 回應包裝為函數呼叫。
確保您的伺服器正確包裝 JSON 回應查詢字串中傳遞的方法名稱。例如,如果您的查詢字串包含 ?callback=my_callback_method,您的伺服器應回應:
my_callback_method({您的 json 序列化資料});
一旦實現,您的 jQuery程式碼應該成功解析JSON資料:
var result;
function jsonparser1() {
$.ajax({ type: "GET", url: "http://10.211.2.219:8080/SampleWebService/sample.do", dataType: "jsonp", success: function (xml) { alert(xml.data[0].city); result = xml.code; document.myform.result1.value = result; }, });
}
以上是如何使用 jQuery 發出跨域 AJAX JSONP 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!