我的WordPress应用程序托管在url http://127.0.0.1/wordpress/上,我在WordPress标头中添加了以下脚本以获得一些令牌,但它没有给出任何令牌
我复制了该URL(http://127.0.0.1:8090/sample/sample/getToken)并在新选项卡中打开,它成功返回了令牌,但是当我使用$ .ajax调用它时,它没有返回我的令牌
<script> $().ready(function(){ $("#signIn").click(function(){ alert("Display Alert Properly"); $.ajax({ type: "POST", url: "http://127.0.0.1:8090/sample/sample/getToken", contentType: "text/html", success: function(token) { window.open("https://api.linkedin.com/uas/oauth/authorize?oauth_token=" + token, "_self", ""); }); }); });
由于现代浏览器中实施了相同起源策略,因此无法通过Javascript直接访问外部资源。但是,有两种解决方案。
如果远程站点提供JSONP,则可以利用它来加载外部资源,但如果不提供,则将无法直接访问这些资源。
如果远程端点不提供JSONP,则您将在自己的服务器上需要一个代理脚本,该脚本接受AJAX请求,将请求发送到外部端点,并将响应中继到Javascript应用程序。确保妥善保护此类脚本,使其仅接受对受祝福端点的请求,否则您将面临令人讨厌的安全漏洞。