使用 jQuery 进行跨域 AJAX JSONP 请求
当尝试使用 jQuery ajax 跨域解析 JSON 数组数据时,必须请注意,托管数据的远程服务器必须支持方法注入,JSONP 才能正常运行。
在您的代码中,以下块使用 dataType: 'jsonp':
$.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 执行此请求时,它将 ?callback={some_random_dynamically_ generated_method} 附加到 URL。此方法通常附加到窗口对象,充当代理,看起来像这样:
window.some_random_dynamically_generated_method = function(actualJsonpData) { // Calls the success callback successCallback(actualJsonData); }虽然您的客户端代码看起来正确,但必须修改您的服务器端代码以包装您的带有通过查询字符串传递的函数名称的 JSON 数据。例如,如果请求 URL 包含 ?callback=my_callback_method,服务器应使用封装在以下结构中的 JSON 数据进行响应:
my_callback_method({your json serialized data});这可确保 JSON 数据成功解析并可供客户端使用-侧代码。
以上是如何使用 jQuery 成功发出跨域 AJAX JSONP 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!