您正在尝试进行跨域资源共享(CORS),该机制允许从资源来源域之外的另一个域请求网页上的受限资源。(例如访问字体或JSON文件)。
浏览器从同源策略中限制您对其他来源资源的访问,这是Internet用户的一项安全措施。
要解决此问题,您必须选择:
- 允许在域http://demo.software.travel上使用CORS (但存在安全问题,请在此处进行更多说明:https : //www.owasp.org/index.php/HTML5_Security_Cheat_Sheet#Cross_Origin_Resource_Sharing)
在服务器上启用CORS以能够通过其访问其他域。这可以通过将以下标头添加到响应中来完成:
Access-Control-Allow-Origin: http://travellights.net Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
- 如果未授予您与该域的资源共享,则可以使用JSONP进行只读操作(JSONP本质上是只读的)
JSONP将JSON对象包装在回调中,从技术上讲,这使请求成为非受限资源(脚本标记),因此可以跨域共享。
通过在页面上添加脚本标签,可以通过vanilla js完成。
function process(data) { // do stuff with JSON}var script = document.createElement('script');script.src = '//domainURL?callback=process'document.getElementsByTagName('head')[0].appendChild(script);或者您可以使用jquery实现相同的目的:
$.ajax({enter pre here url: "http://query.yahooapis.com/v1/public/yql", jsonp: "callback", dataType: "jsonp", data: { q: "select title,abstract,url from search.news where query="cat"", format: "json" }, success: function( response ) { console.log( response ); // server response }});jQuery文档:https :
//learn.jquery.com/ajax/working-with-
jsonp/



