jquery - 使用 jQuery 和 JSONP 跨域检索 html

标签 jquery ajax json jsonp

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

我可以直接使用附加到 URL 的数据来访问该进程,如 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);
        }
    });

最佳答案

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,它只会引发语法错误,此限制是非常有意为之的,并且部分安全 block 已到位( same origin policy 的一部分)。

关于jquery - 使用 jQuery 和 JSONP 跨域检索 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4265037/

相关文章:

javascript - 使用 CSS/Javascript/JQuery 分隔表格单元格

javascript - 在jquery中验证多个文本框

ajax - x-editable ajax调用不处理指定的url

javascript - 如何在mvc中将变量传递给模型的属性

Wildfly 上的 Java EE 7 Web 服务 - JSON 问题

Javascript 子字符串替换为 JQuerys 包含选择器

Javascript 循环遍历事件内的数组

javascript - Dojo DataGrid 如何通知 View 服务器上的数据已更改?

java - 将 Map<Object, Object> 转换为 Json 字符串

Python CSV 读->写;删除并替换 PLUS : end of line is JSON format