Jquery 当浏览器和CURL工作时,ajax获取URL请求超时

Jquery 当浏览器和CURL工作时,ajax获取URL请求超时,jquery,ajax,amazon-web-services,Jquery,Ajax,Amazon Web Services,我看到一个类似的问题,但没有得到公认的答复 以下ajax请求超时。但是GET使用浏览器或curl在同一URL上获取请求可以正常工作。请注意,这是一个跨域AJAX,因为代码位于不同的服务器上,URL用于AWS EC2(Elastbeanstable)实例 有什么线索吗 $.ajax({ url: "http://<edited>.elasticbeanstalk.com/api/v1/Location", dataType:'jsonp', crossDomai

我看到一个类似的问题,但没有得到公认的答复

以下ajax请求超时。但是
GET
使用浏览器或
curl
在同一URL上获取请求可以正常工作。请注意,这是一个跨域AJAX,因为代码位于不同的服务器上,URL用于AWS EC2(Elastbeanstable)实例

有什么线索吗

$.ajax({
    url: "http://<edited>.elasticbeanstalk.com/api/v1/Location",
    dataType:'jsonp',
    crossDomain:true,
    timeout:120000
    }).done(function(){
        //do something
        $("#status").html("SUCESS");
    }).fail(function(jqXHR, textStatus){
        if(textStatus == 'timeout')
        {
            //alert('Failed from timeout');
            $("#status").html(textStatus);
            //do something. Try again perhaps?
        }
});
$.ajax({
url:“http://.elasticbeanstalk.com/api/v1/Location",
数据类型:'jsonp',
跨域:是的,
超时:120000
}).done(函数(){
//做点什么
$(“#状态”).html(“成功”);
}).fail(函数(jqXHR,textStatus){
如果(textStatus==“超时”)
{
//警报(“超时失败”);
$(“#status”).html(textStatus);
//做点什么,也许再试一次?
}
});
[编辑]已添加

当我检查AWS服务器日志时,我看到GET请求得到了200(成功)的响应。但是仍然有$.ajax请求超时


120.138.116.202--[17/Jun/2015:12:12:31+0000]“GET/api/v1/Location HTTP/1.1“200 144”“”Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/43.0.2357.124 Safari/537.36”

您无法处理跨域
JSONP
请求的错误

您必须使用Github上提供的
jsonp插件
,该插件支持错误处理,并尝试找出到底哪里出了问题

您可以浏览他们的文档,这些文档既简单又容易

通过检查。你会注意到的

错误

请求失败时调用的函数(…)注意:此处理程序 对于跨域脚本和跨域JSONP请求不调用。 这是一个Ajax事件

[解决方案]

原来问题与跨域请求有关。根据下面的链接更新服务器代码以添加“Access Control Allow Origin”标头,解决了此问题


除了处理错误,我更担心的是,当GET请求的其他方法工作正常时,为什么ajax会超时。无论如何,我会检查JSON插件,看看错误响应是否有更多提示……您应该处理错误,以了解到底是什么问题只是为了弄清楚,我看到调用代码的.fail部分,并将“textStatus”作为超时