1

我有一个网页,我正在尝试使用 ajax 调用将一些来自另一个网页的 html 内容放入其中。但是我正在努力解决跨域问题。

$('.trigger').click(function(e) {
    e.preventDefault();
    $.ajax({
        url: 'http://myothersite.com',
        datatype: 'text/html',
        type: 'GET',
        success: function(data) {
            var content = data.responseText;
            console.log(content);
        }
    });
});

谁能建议我将如何实现这一目标?

谢谢,

4

2 回答 2

5

无法text/html在任何现代浏览器中进行跨域获取。

我知道目前唯一有效的返回类型是jsonp


或者你可以做一些跨域资源共享

于 2012-12-19T18:22:47.500 回答
2

如果可以适当调整 headers,就可以执行跨域请求。

为了使其工作,您需要更改客户端和服务器:

客户:

xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"];

使用 jQuery 的客户端

jQuery.support.cors = true;

需要更改服务器以OPTIONS适当地响应请求。我已经为 ASP.NET Web API 编写了一个示例,但是无论您在服务器上运行什么,概念都是相同的。

如果您无法对服务器进行更改(例如它是第三方服务),您仍然可以使用老式的 JSONP

于 2012-12-19T18:28:38.833 回答