我正在尝试使用JSONP
加载一个外部页面,但该页面是一个HTML
页面,我只想使用ajax获取它的内容。
编辑:我这样做的原因是因为我想在加载页面时传递所有的用户信息,例如:头、ip、代理,而不是我的服务器。
这可行吗?现在,我可以获得页面,但是jsonp试图解析json,返回一个错误:Uncaught SyntaxError: Unexpected token <
示例代码:
$.post('http://example.com',function(data){
$('.results').html(data);
},'jsonp');
我已经设置了一个jsfiddle供人们测试:http://jsfiddle.net/8A63A/1/
发布于 2012-04-29 08:19:52
我已经完成了您想要的操作,但在我的示例中,我可以控制返回HTML的服务器端代码。因此,我所做的是将HTML代码包装在返回对象的一个Json属性中,并在客户端使用它,如下所示:
callback({"page": "<html>...</html>"})
您面临的语法错误是因为您使用的库需要json,但响应是HTML,仅此而已。
发布于 2011-09-24 00:09:58
发布于 2012-06-30 15:26:48
如果你真的只想使用客户端来抓取一个超文本标记语言文件,我建议使用flyJSONP -它使用YQL..或者使用jankyPOST,它使用了一些甜蜜的技术:
jankyPOST创建一个隐藏的iframe,并用一个表单iframe填充它
然后它使用HTML5 (看看传统的浏览器!)iframe发送到另一个webMessaging,并将iframe的表单元素的值设置为您指定的值。
将表单提交到远程server...done。
或者你可以直接使用PHP curl,解析它,回显它,等等。
我不知道你到底用它做什么,但我希望这能有所帮助。
还有..。我非常确定您可以JSONP任何来自服务器代码的输出。我用ClientLogin做到了这一点,只需JSONPing他们的keyGen页面,并成功地consoleLogged文本,即使它是b/w标签。我有一些其他的错误,但重点是我抓取了输出。
目前,我正在尝试做你所做的事情,所以如果成功了我会发回来的。
https://stackoverflow.com/questions/7531823
复制相似问题