jquery加载问题
我设置了一个 js 小提琴 - 只是一个简单的 jquery 加载函数,它将 url 的内容加载到 div 中,但它不起作用。如果我直接访问 URL,效果很好。有什么想法可能会出问题吗?
I set up a js fiddle - just a simple jquery load function that loads the content of a url into a div, but it doesn't work. If I access the URL directly, it works fine. Any ideas what might be going wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
问题是该网址在另一台服务器上,您无法访问它。如果你想调用它,你应该使用 $.ajax() 并设置
crossDomain
选项设置为 true取自 load() 的文档:
The problem is that the url is on another server and you can't access it. If you want to call it, you should use $.ajax() and set the
crossDomain
option to trueTaken from the documentation of load():
由于浏览器的限制,大多数 Ajax 请求都受到“同源策略”的约束。这意味着在大多数情况下,如果不使用代理、YQL、JSONP 或等效技术来解决此问题,则无法使用 jQuery 的 ajax 方法从外部域获取数据。
你应该考虑使用这个:
https://github.com/jamespadolsey /jQuery-Plugins/blob/master/cross-domain-ajax/jquery.xdomainajax.js
使用此插件应该允许您问题中的 ajax 示例。
另一种选择是使用服务器端代理,然后使用 ajax 请求该页面。如果您的服务器可以运行 PHP,请尝试在谷歌上搜索“php ajax proxy”之类的内容,您将获得大量结果。
Due to browser restrictions, most Ajax requests are subject to the "same origin policy". That means that in most cases, you can’t use jQuerys ajax methods to fetch data from external domains without using a Proxy, YQL, JSONP or equivalent technique to get around this.
You should consider using this:
https://github.com/jamespadolsey/jQuery-Plugins/blob/master/cross-domain-ajax/jquery.xdomainajax.js
Using this plugin should allow the ajax example in your question.
Another option is to use a server-side proxy and then request that page using ajax. If your server can run PHP, try googling for something like "php ajax proxy" and you’ll get plenty results.
这绝对是浏览器限制(http://api.jquery.com/load#notes-0):
It's definitely a browser restriction (http://api.jquery.com/load#notes-0):