-2

按照我的代码:

    $('#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

4

3 回答 3

1

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

这是您可以解决的跨域问题

  1. 您网站上的代理

  2. abc.com 网站的 JsonP 支持

  3. 如果您只想发布而不关心结果是什么,您可以创建一个表单和一个 iframe,然后将表单的目标设置为该 iframe,然后发布(不适用于启用 csrf 的站点)

于 2012-06-01T08:03:45.577 回答
1

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

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

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

于 2012-06-01T08:03:47.960 回答
0

直接用chrome或者ie调试器调试一下,在click()函数的入口处下断点,然后一步一步,就会发现问题。

于 2012-06-01T08:13:19.353 回答