2010-06-26 68 views
0

嗨,我正在做一個練習,我試圖利用javascript/ajax抓取nytimes網站的內容。jsonp響應中的非法字符

爲了發送跨域ajax請求我正在使用代理服務器,返回我與nytimes網站內容的jsonp響應。

但是由於該html內容有一些引發「非法字符」錯誤的字符(單引號)。

<script type="text/javascript" src="http://json-proxy.jgate.de/?callback=callback&url=http%3A%2F%2Fwww.nytimes.com%2F"></script> 
<script> 
function callback(obj) { 
alert(obj); 
} 
</script> 

什麼可能是這種錯誤的可能解決方案? 還有什麼其他方法可以解決這個問題?

感謝

(附:這個問題被問到一個我在採訪他的朋友)

更新:這裏是雅虎管道鏈接以相同。 http://pipes.yahoo.com/pipes/pipe.run?_id=748e37c218ed0747d0b868ae8eafefa6&_render=json

回答

0

Yahoo管道固定那個問題。

0

您必須轉義服務器上的字符。

callback('<!DOCTYPE html PUBLIC \"-//W...etc.') // notice the \"-//W 

相反的:

callback('<!DOCTYPE html PUBLIC "-//W...etc.') // which will eventually create an error 

逃生所有的特殊字符,如/\/\ ...

+0

我無權訪問該代理服務器。我在網上找到了該服務器。 – priyank 2010-06-26 21:01:45

+1

您的第一臺服務器存在一個錯誤,它使您輸出的網站無法使用JSON。但雅虎管道JSONP的作品:http://pipes.yahoo.com/pipes/pipe.run?_id=748e37c218ed0747d0b868ae8eafefa6&_render=json&_callback=callback – tcooc 2010-06-26 21:24:56