- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发 Chrome 的用户脚本/扩展程序,并尝试从“某个网站”提取一些 JSON 数据。这是我的方法:
$.get( "http://cloud.hartwig-at.de/~oliver/superuser.json",
function( data ) { console.log( data ); }
);
当然,这会导致以下错误:
XMLHttpRequest cannot load http://cloud.hartwig-at.de/~oliver/superuser.json. Origin http://superuser.com is not allowed by Access-Control-Allow-Origin.
阅读 Origin 'url' is not allowed by Access-Control-Allow-Origin 后我能够解决这个问题(以及其他问题)。所以,这是下一个版本:
$.get( "http://cloud.hartwig-at.de/~oliver/superuser.json",
function( data ) { console.log( data ); },
"jsonp"
);
遗憾的是,这会导致另一个错误:
Uncaught SyntaxError: Unexpected token : (superuser.json:2)
还有一个警告告诉我“资源解释为脚本,但使用 MIME 类型文本/纯文本传输:”,这已经让我知道问题可能是什么。 (更多详细信息通过 Chrome says "Resource interpreted as script but transferred with MIME type text/plain.", what gives? 提供)
显然,the HTTP server has to send the proper MIME type对于我的文件,这将是 application/json
.
好的,所以我赶紧添加了the required change到我的 mime.types
并进行另一次尝试。但是,没有骰子!警告消失了,错误却没有消失。我仍然收到 Uncaught SyntaxError: Unexpected token :
。 (我之前也尝试过使用 mimeType
parameter 来解决这个问题,结果是一样的。)
MIME 类型看起来不错:
现在我有点没主意了。 .json
文件的内容在 http://www.jslint.com/ 上验证良好。
最佳答案
告诉 jQuery 执行 JSONP 并不能神奇地让它工作。它使 JSONP request ,但另一端的服务器需要支持JSONP调用。
服务器的响应应该类似于
someFunction( { "foo" : "bar" } );
参见jQuery's docs on getJSON配合JSONP看看如何使用回调
如果是现代浏览器,您可以使用 CORS并且您可以控制第二个域。
其他选项是您的域上的服务器端代理,它从其他域请求数据。或者您可以使用类似 Yahoo pipes 的服务。
关于javascript - 如何正确可靠地跨站加载JSON数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14222663/
我有一个站点是在 asp.net 中完成的。另一个较新的站点是在 asp.net MVC、LINQ 和 Razor 中完成的。 当我访问旧站点 oldsite/default?userid=243 时
我想提供一段 Javascript 代码,它可以在包含它的任何网站上运行,但它总是需要在托管 Javascript 的服务器上获取更多数据(甚至修改数据)。我知道出于显而易见的原因存在安全限制。 考虑
我是一名优秀的程序员,十分优秀!