Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript GGeoXML如何访问跨域XML文件?_Javascript_Ajax_Google Maps_Xmlhttprequest_Kml - Fatal编程技术网

Javascript GGeoXML如何访问跨域XML文件?

Javascript GGeoXML如何访问跨域XML文件?,javascript,ajax,google-maps,xmlhttprequest,kml,Javascript,Ajax,Google Maps,Xmlhttprequest,Kml,GoogleMaps的API对象GGeoXML能够访问跨域XML文件(通常是KML或GeoRSS)。它不使用XmlHttpRequest,因为它抛出了“拒绝访问受限URI”异常(正如它应该的那样)。另外,它没有使用Google的GXmlHttp包装器,因为我已经尝试过了,它抛出了相同的URI拒绝异常 因此,GGeoXML既没有使用XMLHttpRequest,也没有使用Google的GXMLHttp包装器。GGeoXML如何访问跨域XML文件?如果您确实希望通过AJAX获取跨域数据,那么可以使用

GoogleMaps的API对象GGeoXML能够访问跨域XML文件(通常是KML或GeoRSS)。它不使用XmlHttpRequest,因为它抛出了“拒绝访问受限URI”异常(正如它应该的那样)。另外,它没有使用Google的GXmlHttp包装器,因为我已经尝试过了,它抛出了相同的URI拒绝异常

因此,GGeoXML既没有使用XMLHttpRequest,也没有使用Google的GXMLHttp包装器。GGeoXML如何访问跨域XML文件?

如果您确实希望通过AJAX获取跨域数据,那么可以使用JSONP。它本质上是一个封装在函数调用中的JSON对象。当JSONP对象返回到您的服务器时,将执行该函数,并将其中的JSON解析回一个可行的对象


JSONP是专门为避免AJAX的跨域限制而创建的。

后端有一个“跨域”访问此数据的代理。这避免了浏览器中的跨域安全功能


JS对“fetchData”的调用调用JS所在域上的web服务。这个后端代理“跨域”访问其他信息,对其进行解析并将其返回给“fetchData”调用的回调函数。

据我所知,Google Maps使用“脚本标记hack”加载我的外部XML文件。它插入带有代理服务器的脚本src,然后代理服务器加载我的外部KML并传递给客户端。它在XML和JSON之间转换吗?它们包含的脚本将是它们所需要的javascript对象,它们的自定义事件将被触发。xml到json的转换当然可以在客户端完成(谷歌的“xml到json javascript转换器”)