javascript - JQuery - 跨域 Ajax 调用 JSON 文件而不使用 JSONP

标签 javascript jquery ajax json same-origin-policy

我正在尝试从不同的域访问 URL,例如 www.url-one.com,它仅提供 JSON 文件,无法提供JSONP 文件。这对我使用 JQuery 的 ajax() 函数不起作用。

这是我的代码:

    $.ajax({
        url : 'http://url-two.com'+sample,
        async : false,
        dataType : 'jsonp',
        crossDomain: true,
        success : function(data) {
            // Some Other Code
        }
     }

如何在不依赖 JSONP 的情况下解决同源策略? 提前致谢 - 我在代理问题上遇到了重大问题,但我听说这是可能的。

最佳答案

有很多方法可以做到这一点,下面我将提到 3 个我自己过去使用过的方法。

最常见的是使用 Cross-Origin Resource Sharing (CORS).

基本上,托管 json 文件的服务器(我们称之为 server1)需要正确设置 Access-Control-Allow-Origin header 以允许其他服务器(我们称之为 server2)来访问它。

如果您不想或无法使用 CORS,您可以执行以下 2 项操作之一:

1:在server2上使用重写规则将特定路径的流量从server2重定向到server1。

2:在 server2 上使用服务器端代理来获取 json 文件。

设置这些内容完全取决于您的服务器设置,我无法帮助您。

关于javascript - JQuery - 跨域 Ajax 调用 JSON 文件而不使用 JSONP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17623518/

相关文章:

javascript - 无法停止 slider

javascript - 如何获取当前连接的所有事件视频设备?

javascript - 使用 Bootstrap 的 Photoswipe 画廊

javascript - 如何使用 jQuery 将一个 html 文档引用到 div 中的另一个 html 文档?

php - 如何使用ajax或jquery验证类型radio的答案

javascript - 使用拖动事件在 Canvas 上的图像上绘制矩形

javascript - 使 <div> 的 col 类响应

jquery - jquery中如何使用焦点?

javascript - 使用 javascript 修改 CSS

php - 如何在页面刷新时保留归档数据