2

我的 GET 请求工作正常并以 xml 响应。 https://mydomain.com/mypage.php?id=123&nm=ak_dhara 注意:我们的 php 页面位于 https。

但是 POST 不起作用。

xhttp.open("POST"," https://mydomain.com/mypage.php",true);
xhttp.setRequestHeader("Content-type","application/xhtml+xml");
xhttp.send("id=123&nm=ak_dhara");

有什么建议吗?

4

1 回答 1

1

xhttp.setRequestHeader("Content-type","application/xhtml+xml")是错的。如果您想请求 XHTML 内容,那么正确的请求头名称是Accept. 如果您想识别您正在发送的内容类型,那么您正在发送application/x-www-form-urlencoded. 尊重标头的服务器将尝试读取您发送的数据,作为一种使用格式id=123&nm=ak_dhara编码的特殊请求;application/xhtml+xml并且没有 PHP 服务器知道如何做到这一点。它可能在某些浏览器中有效,因为它们知道这不是有效的内容类型,并且它们会忽略该标头并发送正确的值。

顺便说一句,application/x-www-form-urlencoded是默认的,所以你不必明确地设置它。

于 2012-08-26T02:33:19.290 回答