我在同一服务器上有两个单独的应用程序,其中EmberJS试图对我的后端API进行跨域调用。
我设置了后端API,以允许来自该特定来源的跨域请求。但是,有没有办法避免通过这种设置使用JSONP?$.ajax
在跨域请求发送之前将其阻止。如果不是,那么CORS的意义何在?我实现了哪个服务器端来接受来自JS前端源的请求?
编辑
AJAX请求:
$.ajax({
url: "api.lvh.me:3000/accounts/login",
data: cred,
type: "POST",
xhrFields: {
withCredentials: true
},
success: function(response){
alert('succeeded!');
console.log(response);
alert(response);
},
failure: function(message){
alert("failed");
console.log(message);
alert(message);
}
});
如果启用了CORS,则无需使用JSONP。
Access-Control-Allow-Origin: http://www.example.com
如果在响应中设置了此标头,则普通的XmlHttpRequest将能够像访问相同域一样访问响应。检查此头是否设置正确。
我希望如果您使用jquery,此链接将对您有所帮助。CORSPOST请求可通过纯javascript工作,但为什么不使用jQuery?
更新:示例
var xmlhttp= new XMLHttpRequest();
var url="https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS?redirectlocale=en-US&redirectslug=HTTP_access_control";
xmlhttp.open("GET",url,false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.send();
在任何域中尝试此操作,您都会得到回应。
更新解决方案:
请求网址中未包含“ http://”的URL引起了问题,在前缀“ http://”之前已解决了该问题
问题内容: 我知道以前曾问过这个问题,但是没有一个答案对我有用!我正在做一个学校项目,我想获取学校服务器上动态计划文件返回的HTML(为我的项目解析)。 我想要HTML的页面是:https : //telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched 我认为未为学校服务器文件启用CORS,并且我不知道它是否支持JSONP … 如何设置跨域请求以从该页面
问题内容: 除了JSONP,为什么要遵循相同的域策略? 问题答案: 出于安全原因,已实施“同源起源策略”;引用维基百科的相关句子: 这种机制对现代Web应用程序具有特殊的意义,因为Web服务器广泛依赖于HTTP cookie来维护经过身份验证的用户会话,因为服务器基于HTTP cookie信息进行操作以揭示敏感信息或执行状态更改操作。 必须在客户端维护不相关站点提供的内容之间的严格分隔,以防止丢失
问题内容: 在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展。 我在脚本顶部仅添加了以下两行,以使它们能够做到: 现在我的问题是:这里是否遗漏了任何安全方面的考虑?这个简单的解决方案会带来严重的问题吗? 如果是这样,什么是更好的解决方案? 感谢您的回复。 问题答案: 如上所述,任何人都可以随时向您的页面发送请求:因此,您需要考虑的主
在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展<我只是在我的脚本顶部添加了这两行,让他们完成这项任务: 现在我的问题是:这里有我错过的任何安全考虑吗?这个简单的解决方案会产生严重的问题吗? 如果是,更好的解决方案是什么? 感谢您的回复。
问题内容: 我们有一个配置了SSL的网站,可托管WCF服务。服务的绑定具有,并且通信使用JSON序列化。 当我们从http请求此服务时,它返回JSONP,但是当使用HTTPS请求该服务时,它仅返回JSON。无论哪种方式我都需要JSONP,请帮忙。 当前配置是这样的: 问题答案: 如果使用此配置会发生什么: 问题是,如果要同时通过HTTP和HTTPS调用服务,则必须提供两个端点-一个端点用于HTTP