我设置了一个js小提琴 - 只是一个简单的jquery加载函数,它将一个url的内容加载到div中,但它不起作用。如果我直接访问URL,它可以正常工作。什么想法可能会出错?
答案 0 :(得分:3)
问题是该url位于另一台服务器上,您无法访问它。如果您想要调用它,则应使用$.ajax()并将crossDomain
选项设置为true
取自load()的文档:
由于浏览器安全限制,大多数“Ajax”请求都遵循相同的原始策略;请求无法成功 从不同的域,子域或协议中检索数据。
答案 1 :(得分:1)
由于浏览器的限制,大多数Ajax请求都受“同源策略”的约束。这意味着在大多数情况下,您无法使用jQuerys ajax方法从外部域获取数据,而无需使用Proxy,YQL,JSONP或等效技术来解决此问题。
你应该考虑使用这个: https://github.com/jamespadolsey/jQuery-Plugins/blob/master/cross-domain-ajax/jquery.xdomainajax.js
使用此插件应该允许你的问题中的ajax示例。
另一种选择是使用服务器端代理,然后使用ajax请求该页面。如果您的服务器可以运行PHP,请尝试使用Google搜索“php ajax proxy”等内容,您将获得大量结果。
答案 2 :(得分:0)
这绝对是一个浏览器限制(http://api.jquery.com/load#notes-0):
由于浏览器安全限制,大多数“Ajax”请求都遵循相同的原始策略;请求无法成功从其他域,子域或协议中检索数据。