JSONP - ajax 请求回调失败
JSONP - ajax request callback fails
我正在使用 jsonp
将一些数据从一个域推送到另一个域。我在第二台服务器上获取数据,过程正常。但是回调不起作用 properly.Even 在另一台服务器上获取数据后,请求显示 pending
状态,一段时间后请求失败并显示错误 net::ERR_EMPTY_RESPONSE
$.ajax({
type: 'GET',
url: url,
crossDomain: true,
data: data,
dataType: 'jsonp',
success: function(responseData, textStatus, jqXHR) {
console.log('success')
},
error: function(xhr,status,error){
console.log('error')
}
});
当请求失败时,我在控制台中收到“错误消息。
更新 :
Headers
Request URL:http://example.com:3000/request?callback=jQuery21309164826604537666_1429167109185&firstname=sdf&lastname=sdf&_=1429167109187
Request Headers
Provisional headers are shown
Accept:*/*
Referer:http://localhost/widgets/form.html
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36
Query String Parameters
view source
view URL encoded
callback:jQuery21309164826604537666_1429167109185
firstname:sdf
lastname:sdf
phone:sdf
email:sdf
_:1429167109187
我认为您的问题是带有 jsonp 的 jQuery 期待一些 JSON 返回。你的响应正文应该看起来像
jQuery21309164826604537666_1429167109185({});
在 PHP 中,您可以简单地 return 像这样的虚拟函数:
$callback = isset($_GET["callback"]) ? $_GET["callback"] : "?";
header('Access-Control-Allow-Origin: *');
header("Content-type: application/json");
echo $callback . "({});";
对于Node.js,你可以直接使用
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader("Content-Type", "application/json");
res.jsonp({});
我正在使用 jsonp
将一些数据从一个域推送到另一个域。我在第二台服务器上获取数据,过程正常。但是回调不起作用 properly.Even 在另一台服务器上获取数据后,请求显示 pending
状态,一段时间后请求失败并显示错误 net::ERR_EMPTY_RESPONSE
$.ajax({
type: 'GET',
url: url,
crossDomain: true,
data: data,
dataType: 'jsonp',
success: function(responseData, textStatus, jqXHR) {
console.log('success')
},
error: function(xhr,status,error){
console.log('error')
}
});
当请求失败时,我在控制台中收到“错误消息。
更新 :
Headers
Request URL:http://example.com:3000/request?callback=jQuery21309164826604537666_1429167109185&firstname=sdf&lastname=sdf&_=1429167109187
Request Headers
Provisional headers are shown
Accept:*/*
Referer:http://localhost/widgets/form.html
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36
Query String Parameters
view source
view URL encoded
callback:jQuery21309164826604537666_1429167109185
firstname:sdf
lastname:sdf
phone:sdf
email:sdf
_:1429167109187
我认为您的问题是带有 jsonp 的 jQuery 期待一些 JSON 返回。你的响应正文应该看起来像
jQuery21309164826604537666_1429167109185({});
在 PHP 中,您可以简单地 return 像这样的虚拟函数:
$callback = isset($_GET["callback"]) ? $_GET["callback"] : "?";
header('Access-Control-Allow-Origin: *');
header("Content-type: application/json");
echo $callback . "({});";
对于Node.js,你可以直接使用
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader("Content-Type", "application/json");
res.jsonp({});