使用JSONP加载html页面

Kor*_*nto 24 javascript ajax jquery jsonp

我正在尝试使用加载外部页面JSONP,但页面是一个HTML页面,我只想使用ajax获取它的内容.

编辑:我这样做的原因是因为我想在加载页面而不是我的服务器时传递所有用户信息ex:headers,ip,agent.

这可行吗?现在,我可以获取页面,但jsonp尝试解析json,返回错误:Uncaught SyntaxError: Unexpected token <

示例代码:

$.post('http://example.com',function(data){
    $('.results').html(data);
},'jsonp');
Run Code Online (Sandbox Code Playgroud)

我已经为人们设置了一个jsfiddle:http: //jsfiddle.net/8A63A/1/

c69*_*c69 16

http://en.wikipedia.org/wiki/JSONP#Script_element_injection

进行JSONP调用(换句话说,使用此使用模式)需要一个脚本元素.因此,对于每个新的JSONP请求,浏览器必须添加(或重用)一个新元素 - 换句话说,将元素注入到HTML DOM中,并使用"src"属性的所需值.然后评估此元素,检索src URL,并评估响应JSON.

现在看看你的错误:

未捕获的SyntaxError:意外的令牌<

<是任何html标记的第一个字符<DOCTYPE,在这种情况下,这可能是开头,当然,这是无效的JavaScript.

NO,你不能使用JSONP用于读取HTML数据.

  • 如果我能够检索数据,为什么我无法更改数据的解释方式? (2认同)

mar*_*ler 12

我已经做了你想要的,但在我的情况下,我控制了返回HTML的服务器端代码.所以,我所做的是将HTML代码包装在返回对象的一个​​Json属性中,并在客户端使用它,如:

callback({"page": "<html>...</html>"})
Run Code Online (Sandbox Code Playgroud)

您面临的语法错误是因为您正在使用的库需要json,但响应是HTML,就是这样.