【发布时间】:2012-09-16 13:25:21
【问题描述】:
我有返回 JSON 响应的 Asp.Net 控制器方法。但是我无法使用 Jquery 的$.getJSON(...){}从不同的域调用它
快速谷歌搜索建议必须使用 JSONP。问题是 JSON 和 JSONP 有什么区别?这只是另一个新名词吗?如果 JSONP 工作正常,为什么我不能让 JSON 工作?有什么办法不使用这些花哨的 JSONP 并使用普通的旧 JSON,因为我害怕对我的服务器端代码进行任何更改。
【问题讨论】:
-
常规的 JSON ajax 将不起作用,因为它违反了同源策略,该策略通常在所有现代浏览器中都存在。此策略不允许使用 javascript 向另一个域发出请求,因为会出现许多安全问题,特别是浏览器存储的 cookie 和会话。如果您有兴趣,请阅读维基百科的更多信息。
-
您可能想研究跨域资源共享 (CORS)。
标签: jquery asp.net json asp.net-mvc-3 jsonp