我有一个 html 页面,它需要使用 ajax 请求访问不同服务器上的资源:
$.ajax({
url: "externalUrl/myjson.js",
});
但由于“同源政策”,我无法访问该资源。作为一种解决方法,我修改了 html 页面,该页面只是重定向到单独服务器上的新页面。这个新页面调用 ajax 请求没有问题,因为它是从同一来源发出的。这是可接受的解决方法吗?
我有一个 html 页面,它需要使用 ajax 请求访问不同服务器上的资源:
$.ajax({
url: "externalUrl/myjson.js",
});
但由于“同源政策”,我无法访问该资源。作为一种解决方法,我修改了 html 页面,该页面只是重定向到单独服务器上的新页面。这个新页面调用 ajax 请求没有问题,因为它是从同一来源发出的。这是可接受的解决方法吗?
同源策略不是法律或任何东西,只是浏览器内置的一种措施,以防止 XSRF 和其他东西。如果您找到了适合您的解决方法,那么没有什么是“不可接受的”。
尝试将 jsonp 用于jQuery.ajax中的 dataType 属性。远程服务器也需要支持 jsonp。它将绕过浏览器安全,防止 XSS。
这将绕过 XSS 的浏览器安全性。您调用的 url 也需要返回 jsonp 才能正常工作。
$.ajax({
url: "externalUrl/myjson.js",
dataType: jsonp
});