2

假设我在网络上有一个网页,这个页面有很多带有 id 的元素。如何使用 javascript 获取这些元素?我在 jQuery 中使用了这个块:

    $.get(websiteUrl, {}, function(results){
    //alert(results); // will show the HTML from anotherPage.html
    console.log($(results).find("bookId").html()); // show "bookId" div in results
    });

但我得到错误:

 XMLHttpRequest cannot load; Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin.

实际上,我正在尝试从 Android 上的 Phonegap 应用程序的网页中获取一些数据。任何想法如何做到这一点?

4

2 回答 2

1

您可以使用 jsonp 进行跨域 ajax 调用,但不会收到错误或超时回调。jQuery 原生支持 jsonp。 http://api.jquery.com/jQuery.ajax/ 理论上是你向页面添加一个脚本标签,其中包含一个包含回调函数名称的精心构造的 url。然后,服务器处理 ajax“请求”,并将答案作为单个参数返回给您的回调函数。

于 2012-05-19T07:59:59.643 回答
1

大多数浏览器都遵守严格的同源策略。这意味着您不能向其他服务器发出 Ajax 请求。虽然您可以绕过它,但对每个客户都做这件事并不实际。

最好的办法是调用服务器端脚本为您获取它,并将结果返回给 JavaScript。

于 2012-05-19T07:54:17.267 回答