首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ajax GET方法中没有调用成功函数。

在ajax GET方法中没有调用成功函数。
EN

Stack Overflow用户
提问于 2015-03-16 09:45:33
回答 3查看 103关注 0票数 0

在这段代码中,我面临着success函数中的一个问题。我试了很多次,但是它会用到error函数。#action-button调用JavaScript方法。

代码语言: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>
代码语言:javascript
复制
$('#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'
    });
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-16 11:37:18

正如我在上面的注释中提到的,AJAX查询由于XSS保护而被阻塞。

在IE中运行您提供的jsFiddle (并在error()回调中放置一个断点)将导致错误:

访问被拒绝

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

跨源请求被阻止:相同的原产地策略不允许在http://0daf70fe0a6244fe中读取远程资源.可以通过将资源移动到相同的域或启用CORS来解决这个问题。

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

票数 1
EN

Stack Overflow用户

发布于 2015-03-16 09:51:37

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

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

票数 2
EN

Stack Overflow用户

发布于 2015-03-16 09:52:23

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29073665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档