Jquery 没有JSONP的JSON跨站点
我有一个本地硬件,我通过它的IP地址访问它来检索json数据 我正在创建一个基于web的应用程序,但由于跨域问题,当应用程序在web上运行时,它无法访问本地json数据 是否有合适的解决方案使JSON数据可用于web应用程序 我使用jQuery在本地读取JSON文件 硬件目前不提供JSONPJquery 没有JSONP的JSON跨站点,jquery,json,jsonp,Jquery,Json,Jsonp,我有一个本地硬件,我通过它的IP地址访问它来检索json数据 我正在创建一个基于web的应用程序,但由于跨域问题,当应用程序在web上运行时,它无法访问本地json数据 是否有合适的解决方案使JSON数据可用于web应用程序 我使用jQuery在本地读取JSON文件 硬件目前不提供JSONP 提前感谢。您可以在本地站点上用PHP/ASP/等页面代理它,该页面(在后端)将查询远程信息。这将允许您调用somesite.com/getForeignData(实际上调用othersite.com/for
提前感谢。您可以在本地站点上用PHP/ASP/等页面代理它,该页面(在后端)将查询远程信息。这将允许您调用somesite.com/getForeignData(实际上调用othersite.com/foreignData)并在同一域中返回它
除此之外,您还需要使用JSONP(这是一个专门设置的边界)。“最后一个”选项是在您的浏览器上启用跨境调用,但如果您希望其他人具有相同的功能,这只是一个临时解决方案。您可以将标头添加到HTTP响应中吗?如果是,请添加以下内容
Access Control Allow Origin
值为*
然后您的浏览器将允许对该资源的请求您可以创建本地代理 例如,如果您的web应用程序在www.example.com上运行,则制作一个小型服务器端组件,该组件在www.example.com/hardware上响应 然后,在调用此URL时,服务器端组件对硬件执行直接查询,并将其返回给调用webapp 注意事项:
- 如果响应较大或硬件速度较慢,则代理可能需要大量缓冲。如果你想制定一个可扩展的解决方案,你必须小心
- 您可以在代理上缓存数据,以减少硬件上的负载
- 您可以在将数据发送到代理中的web应用程序之前对其进行按摩。例如,将JSON更改为XML,反之亦然。甚至将其预格式化为HTML
2) 只需创建一个flXHR的实例
3) 然后将其分配给jqueryajax选项
$.ajaxSetup({
"xhr": myflXHRInstance
});
(更多信息请访问)4) 将crossdomain.xml放在ip的根目录中,即。 5) 通过jQuery享受您的跨域请求) p.S.要求安装flash插件。几乎没有浏览器没有安装Flash player插件 编辑:为crossdomain.xml的俄文链接感到抱歉。
如果您这样做,请不要尝试将“允许从域访问”(“*”)设置为“允许”,因为这样会使您的站点为任何站点打开,以阅读您的内容。问题是您必须将crossdomain.xml放在硬件设备上,这可能是不可能的