【发布时间】:2013-04-07 22:29:22
【问题描述】:
我发现这个非常有用的 Chrome 扩展名为 Postman。这是一个非常有用的扩展,尤其是在您编写 RESTful 应用程序时。
我感到困惑的一件事是,这个插件/扩展如何能够在不同的域上成功发送 POST 请求?
我尝试像这样使用 Postman 在投票中投票。
提交后,投票实际上已计入,但当我尝试使用 AJAX 和 JavaScript 时,由于浏览器的来源政策不同,它失败了。
这怎么可能?
这是我使用 jQuery 的代码。不过,我在我的电脑上使用了它,localhost。
init: function() {
$.ajax({
url: 'http://example.com/vote.php',
type:'POST',
dataType: 'html',
data: {
id: '1'
},
success: function(data) {
if ( data == 'voted' ) {
$('.set-result').html( 'you already voted. try again after 24 hours' );
} else {
$('.set-result').html( 'successfully voted' );
}
}
});
},
【问题讨论】:
-
看起来好像扩展通过发布到 getpostman.com 而不是您的目标域(使用 CORS)来工作,然后 getpostman.com 的服务器发出请求并返回响应。 github.com/a85/POSTMan-Chrome-Extension/blob/master/chrome/js/…
-
这似乎是合法的,然后我会通读他们的代码,我可能会尝试提出相同的解决方案。
-
但是请注意,要在 IE 中实现 CORS,您必须通过包含替代传输来更改 jQuery。 IE7 根本不支持 CORS。
-
没问题..
-
@KevinB,不正确。当我测试显然无法从 gepostman.com 的服务器访问的本地服务器时,它可以工作。
标签: javascript jquery ajax api postman