JavaScript可以对任何域执行POST HTTP请求吗?

时间:2013-03-15 17:58:15

标签: javascript security http post

我知道可以从JavaScript加载来自任何域的任何类型的文档(无需查看其内容),但它通常涉及常规GET请求。那么POST呢?

是否可以从JavaScript向任何域名发出HTTP POST请求? (我对提交表单特别感兴趣。)

若然,怎么样?

1 个答案:

答案 0 :(得分:0)

根据附近问题«HTTP GET request in JavaScript?»的一些答案,您可以使用XMLHttpRequest,因为根据文档,也支持POST方法。

http://www.w3.org/TR/XMLHttpRequest/
https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest

上述w3.org文档中的示例代码:

function log(message) {
  var client = new XMLHttpRequest();
  client.open("POST", "/log");
  client.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
  client.send(message);
}

但是,为了使POST次请求与您的网站无关(而不是"/log",完整的httphttps指定了URL,根据https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Simple_requests,可能必须在目标服务器上支持和启用跨源资源共享

因此,似乎,至少通过XMLHttpRequest,您无法通过POST请求进行表单提交(实际上,即使GET请求看起来也不会飞行)