使用jQuery和JSONP跨域检索html

使用jQuery和JSONP跨域检索html,jquery,ajax,json,jsonp,Jquery,Ajax,Json,Jsonp,我有一个表单,可以输出一行简单的html 我可以直接使用附加到url的数据访问流程,如 因为这是跨域(到子域)的,所以我尝试使用JSONP来实现这一点。我第一次尝试使用数据类型json,但仍然得到了403。以下是我尝试使用JSONP的内容,但这一切都很混乱,并返回一个附加了此%5Bobject%20bObject%5D“的错误。我想这是我如何尝试将数据附加到url的问题 $j.getJSON({ type: 'POST', url: 'http://site.co

我有一个表单,可以输出一行简单的html

我可以直接使用附加到url的数据访问流程,如

因为这是跨域(到子域)的,所以我尝试使用JSONP来实现这一点。我第一次尝试使用数据类型json,但仍然得到了403。以下是我尝试使用JSONP的内容,但这一切都很混乱,并返回一个附加了此%5Bobject%20bObject%5D“的错误。我想这是我如何尝试将数据附加到url的问题

$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);
        }
    });

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

JSONP严格来说是一个GET请求(通过创建一个
标记来实现),您无法跨域发布并返回结果…它就是不这样工作。JSONP的工作方式是它基本上将此添加到您的页面中:

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

它不适用于获取HTML,它只是抛出一个语法错误,这一限制是故意的,并且部分安全块(部分)已就位。

您仍然可以在客户端上发布/获取跨域:

flyJSONP/YQL
jankyPOST/postMessage/contentWindow

CORS

谢谢Nick的解释。我确实将类型设置为“GET”,但遇到了同样的问题,所以我想尝试发布。关于如何获取跨域属性的url打印的html,您有什么建议吗?我很接近使用json,但得到了403,我不知道我是否非常接近jsonp。@zac-如果您想获取HTML,您必须通过自己的域代理请求,您只能跨域获取JavaScript。我们可以以JSON返回的编码格式发送标记吗?
myFunc({ "key": "value"...data, etc... });