繁体   English   中英

在ajax GET方法中未调用成功函数

[英]Success function is not getting invoked in ajax GET method

在这段代码中,我在success函数中遇到了一个问题。 我尝试了很多,但这将导致error功能。 #action-button调用JavaScript方法。

<button id="action-button">Click me to load info!</button>
<div id="info"></div>
<small>
    Demo created by <a href="https://twitter.com">Twitter</a>
</small>
$('#action-button').click(function() {
    $.ajax({
        url: 'sampleurl',
        data: { format: 'json' },
        error: function() {
            $('#info').html('<p>An error has occurred</p>');
        },
        dataType: 'jsonp',
        success: function(data) {
            $('#info').html('<p>Successd</p>');
        },
        type: 'GET'
    });
});

如果要将json发送到服务器,请尝试添加cubeentType:application / json

您还期望响应为jsonp内容类型吗? 不匹配也可能是问题所在。

正如我在上面的评论中提到的那样,由于XSS保护 ,AJAX查询被阻止了。

在IE中运行提供的jsFiddle(并在error()回调中放置一个断点)会产生错误:

拒绝访问

在Firefox中运行它会产生以下错误:

跨域请求被阻止:“相同源策略”不允许读取位于http:// 0daf70fe0a6244fe的远程资源...可以通过将资源移至同一域或启用CORS来解决此问题。

您必须在http:// sampleURL的API调用中添加适当的Access-Control-Allow-Origin标头。

如果在ajax调用过程中发生任何问题,例如错误的URL或服务器上的错误,将不会触发success功能。 如果一切正常,HTTP状态将为200 OK ,因此将触发成功事件。 另外,您的选项中的dataType: 'jsonp'与发布数据不匹配。 这可能是一个可能的问题。 您可以在Firebug中检查错误,然后将其发布以获得更好的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM