Ajax请求失败原因?

时间:2012-06-01 07:59:44

标签: javascript ajax jquery

关注我的代码:

    $('#btnOK').click(function(e){
        e.preventDefault();
        $form = $('#testForm');
        dataString = $form.serialize();
        $.ajax({
            type: "POST",
            url: 'https://abc.com/login',
            data: dataString,
            dataType: 'xml',
            success: function( returnData ) {
                alert(returnData);
            }
        });
    });

我的代码无法向http://abc.com/login页面发出ajax请求,但未给出结果。这里有什么错误?

是否可能因跨域而造成:
我的域名:http://xyz.com
登录域:http://abc.com/login

3 个答案:

答案 0 :(得分:1)

我的域名:http://xyz.com 登录域:http://abc.com/login

这是您可以通过

解决的跨域问题
  1. 您网站上的代理

  2. 来自abc.com网站的JsonP支持

  3. 如果您只是想发布并且不关心结果是什么,您可以创建表单和iframe,然后将表单的目标设置为iframe,然后发布(不会使用启用csrf的网站)

答案 1 :(得分:1)

除非您的abc.com域配置为处理跨域策略,否则您将无法进行跨域ajax调用

解决方案是将您的ajax调用重定向到xyz.com域下的服务器端代理,该代理发送您的数据并从abc.com获取响应(例如,使用CURL)。

或者,如果您控制abc.com域名,则可以发送正确的标题(Access-Control-*)以允许跨域调用

答案 2 :(得分:0)

只需调试它使用chrome或ie debugger,在click()函数的入口处创建一个断点,然后一步一步,你就会发现问题。