小编典典

使用jQuery和JSONP跨域检索html

ajax

我有一个输出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);
        }
    });

阅读 228

收藏
2020-07-26

共1个答案

小编典典

JSONP不能这样工作,您根本不发送JSON,而是发送HTML。

JSONP严格来说是一个GET请求(通过创建<script>标签来完成),您无法跨域POST
返回结果…这根本行不通。JSONP的工作方式基本上是将其添加到您的页面中:

<script type="text/javascript" src="http://site.com/form.asp?order=something&callback=myFunc"></script>

....该响应必须是有效的JavaScript,通常如下所示:

myFunc({ "key": "value"...data, etc... });

它不为获取HTML的工作,它只是抛出一个语法错误,这个限制是 非常
有意的,并在地方安全块的部分(部分同源策略)。

2020-07-26