我有一个输出一行简单的html <a href="link">A LINK</a>
我可以使用附加到网址的数据直接访问该流程,例如http://site.com/form.asp?sample=100
因为这是跨域(到子域),我试图使用JSONP。我首先尝试使用数据类型json,但我仍然得到403禁止。这是我正在尝试使用JSONP,但这是各种混乱,并返回错误与此%5Bobject%20Object%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);
}
});
答案 0 :(得分:7)
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,它只会引发语法错误,此限制非常有意,并且部分安全块到位(same origin policy的一部分)
答案 1 :(得分:1)
您仍然可以在客户端上发布/获取跨域:
<强> flyJSONP / YQL
jankyPOST /的postMessage / contentWindow
CORS 强>