使用jQuery和JSONP跨域检索html

Zac*_*Zac 3 ajax jquery json jsonp

我有一个表单输出一行简单的HTML <a href="link">A LINK</a>

我可以使用附加到网址的数据直接访问该流程,例如http://site.com/form.asp?sample=100

因为这是跨域(到子域),我试图使用JSONP.我首先尝试使用数据类型json,但我仍然得到403禁止.这是我正在尝试使用JSONP,但这是各种混乱,并返回错误与此%5Bobject%20Object%5D"附加到它.我想这是一个问题我如何尝试将数据附加到网址?

$j.getJSON({
        type: 'POST',
        url: 'http://site.com/form.asp',
        data: 'order=' + ordervalue,
        contentType: "application/json; charset=utf-8",
        dataType: "jsonp",
        success: function(response) {
            alert(response);
        }
    });
Run Code Online (Sandbox Code Playgroud)

Nic*_*ver 7

JSONP不能像这样工作,你根本就不发送JSON,而是发送HTML.

JSONP严格来说是一个GET请求(通过创建<script>标记创建),你不能POST跨域获得结果......它只是不起作用.JSONP的工作方式是它基本上将它添加到您的页面:

<script type="text/javascript" src="http://site.com/form.asp?order=something&callback=myFunc"></script>
Run Code Online (Sandbox Code Playgroud)

....响应必须是有效的JavaScript,通常看起来像:

myFunc({ "key": "value"...data, etc... });
Run Code Online (Sandbox Code Playgroud)

它不能用于获取HTML,它只是抛出语法错误,这种限制是非常有意的,并且部分安全块就位(相同原始策略的一部分).

  • @zac - 如果要获取HTML,则必须通过自己的域代理请求,只能获取JavaScript跨域 (2认同)