如何在 JavaScript 中执行跨域 JSON 请求
how to do cross-domain jsonp request in javascript
我正在处理一些代码示例,但是在做我想做的事情时遇到了一些问题。
下面是一个代码示例。 我在互联网上找到了其中的一部分并尝试使用它。
在上面的情况下,它可以完美运行,但是当目标URL不同时,它确实如此
在第一个示例中,目标提供 JSON。在第二个示例中,目标提供 JSONP。
不同之处在于,对于第二个示例,我将 JSON 设置为"true"值。我真的不明白为什么它不起作用。
如果有人能解释我这个原因,我尝试了很多我在互联网上找到的东西,但没有真正奏效。
非常感谢那些会花一些时间解决我的问题并帮助我找出问题所在的人;)
示例 1:
<!doctype html>
<html>
<head>
<title>JSONP example</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
<h1>Test</h1>
<script>
$.ajax({
type: 'GET',
dataType: "json",
processData: false,
crossDomain: true,
jsonp: false,
url: "http://flxn.eu/json.php",
success: function (responseData, textStatus, jqXHR)
{
console.debug(responseData);
$.each(responseData, function (index, value) {
console.debug(value);
$('body').append(value.name + '<br />' + value.address + '<br />' + value.city + '<br />' + value.postcode + '<br />' + '<br />');
});
},
error: function (responseData, textStatus, errorThrown) {
alert('POST failed.');
}
});
</script>
</body>
</html>
示例 2:
<!doctype html>
<html>
<head>
<title>JSONP example</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
<h1>test jsonP</h1>
<script>
$.ajax({
type: 'GET',
dataType: "json",
processData: false,
crossDomain: true,
jsonp: true,
url: "http://widget.mondialrelay.com//parcelshop-picker/v3_0/services/parcelshop-picker.svc/SearchPR?Brand=BDTEST%20%20&Country=FR&PostCode=62620&ColLivMod=24R&Weight=&NbResults=7&SearchDelay=&SearchFar=75&=Zone_Widget&VacationBefore=&VacationAfter=&Service=&Latitude=&Longitude=&method=jQuery16206304910685867071_1380876031038&_=1380879686732",
success: function (responseData, textStatus, jqXHR)
{
console.debug(responseData);
},
error: function (responseData, textStatus, errorThrown) {
alert('POST failed.');
}
});
</script>
</body>
</html>
你需要告诉 jQuery 在哪里放置 JSONP 回调名称。
将 URL 参数更改为 &method=?
。
下面是 jsonp 跨域的工作示例
JSONP with jquery
这就是你要找的吗?
如果您已请求查询字符串
?callback=my_callback_method
然后,您的服务器必须像这样包装数据:
my_callback_method({your json serialized data});
请参阅: 使用 jQuery 发出跨域 ajax JSONP 请求
如果您的 json 没问题,希望这会起作用。
<!doctype html>
<html>
<head>
<title>JSONP example</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
<h1>test jsonP</h1>
<script>
var url = 'http://widget.mondialrelay.com//parcelshop-picker/v3_0/services/parcelshop-picker.svc/SearchPR?Brand=BDTEST%20%20&Country=FR&PostCode=62620&ColLivMod=24R&Weight=&NbResults=7&SearchDelay=&SearchFar=75&=Zone_Widget&VacationBefore=&VacationAfter=&Service=&Latitude=&Longitude=&method=jQuery16206304910685867071_1380876031038&_=1380879686732?callback=?';
$.ajax({
type: 'GET',
url: url,
async: false,
jsonpCallback: 'jQuery16206304910685867071_1380876031038',
contentType: "application/json",
dataType: 'jsonp',
success: function(json) {
console.dir(json.PRList);
},
error: function(e) {
console.log(e.message);
}
});
</script>
</body>
</html>
相关文章:
- Javascript:JSON请求仅在第一次工作
- 神秘的ajax json请求问题jQuery
- Ajax/JSON请求php处理页面
- JSON请求返回.txt文件
- 在设置用户后,从 JavaScript JSON 请求中获取 Web 服务 (asmx) ASP.NET Windows
- 对 URL 的 JSON-P 请求不起作用
- React返回未定义的JSON请求
- D3 Json请求获取XmlHttpRequest错误:访问控制允许原点不允许原点为null
- 如何在浏览器中压缩json请求数据
- 向ajax json请求添加缓存
- 如何在不发生冲突的情况下处理多个json请求
- Json 请求与 YQL 和 MooTools
- 两个 JSON 请求的列表
- Jquery JSON 请求的语法错误问题
- (对象对象)从节点中的 JSON 请求返回
- 有关多个 Facebook Json 请求的性能建议
- 如何在 d3 中从 json 请求数据
- 用于发送 ajax/JSON 请求的 JQuery 快捷方式
- 如何在 JavaScript 中执行跨域 JSON 请求
- JSON 请求错误 500