来自第三方网站的基本jQuery ajax

时间:2013-12-04 21:42:02

标签: jquery ajax

短版

我在使用jQuery时遇到了AJAX问题。

这是我的Fiddle ..我不断收到来自undefined的回复get()。如何从查询中获取该HTML?

长版

目前这只是一个想法。我找到了一个网站http://www.pin1yin1.com/,它直接在注释标记后面的网址末尾接受查询,例如:http://www.pin1yin1.com/#中文 - 它会为给定的hanzi返回一个非常好的拼音。

我正在考虑编写一个google chrome扩展程序,它会自动将ruby-ify中文文本内联在文档中,就像许多页面翻译工具一样。

为此,我必须解释该网站的结果。他们总是看起来像这样:

<tr class="characters">
    <td><a href="/dict/zi/中">中</a></td>
    <td><a href="/dict/zi/文">文</a></td>
</tr>
<tr class="pinyin">
    <td>zhōng</td>
    <td>wén</td>
</tr>

我需要将其转换为ruby,我可以将其注入页面,如:

<ruby>中
    <rt><a href="/dict/zi/中">zhōng</a></rt>
</ruby>
<ruby>文
    <rt><a href="/dict/zi/文">wén</a></rt>
</ruby>

所以我的问题是,我该怎么做?我在使用jQuery时遇到了AJAX问题。

这是我的Fiddle ..我不断收到来自undefined的回复get()

2 个答案:

答案 0 :(得分:2)

正如您所发现的那样,除了与服务器的合作外,您无法从客户端代码中的单独来源阅读回复。

但是,Chrome扩展程序可以向其他网站发送请求,只要您在清单的权限部分列出这些请求即可。

答案 1 :(得分:1)

您正在进行跨站点脚本调用。也称为XSS。这意味着您呼叫除运行您的网站之外的域。见http://en.wikipedia.org/wiki/Cross-site_scripting

当我运行你的示例(其中包含get url中的错误,你应该用http://www.pin1yin1.com替换http:// http://www.pin1yin1.com时)我在控制台中看到错误的XSS:

XMLHttpRequest cannot load http://www.pin1yin1.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.