PHP IIS7动词PUT get数据
我还有一个问题类似于我在这里问的一个问题: 然而,这次我处理的是PUT动词。我在阅读php中的put数据时应使用以下内容:PHP IIS7动词PUT get数据,php,iis-7,httpverbs,Php,Iis 7,Httpverbs,我还有一个问题类似于我在这里问的一个问题: 然而,这次我处理的是PUT动词。我在阅读php中的put数据时应使用以下内容: file_get_contents("php://input") 资源: 然而,就目前而言,这似乎不起作用。我觉得这可能与IIS 7有关,可能会删除数据?。。我安装了webDav,必须删除它才能解析put谓词。我想知道IIS中是否还有其他东西可能阻止在服务器级别解析数据 我的ajax请求如下所示 var data = '{"storyId
file_get_contents("php://input")
资源:
然而,就目前而言,这似乎不起作用。我觉得这可能与IIS 7有关,可能会删除数据?。。我安装了webDav,必须删除它才能解析put谓词。我想知道IIS中是否还有其他东西可能阻止在服务器级别解析数据
我的ajax请求如下所示
var data = '{"storyId":"2","storyName":"a Changed Story.","authorId":"5", "published":"1"}';
$.ajax({
type: "PUT",
url: BaseUrl + "Story/2",
data: data,
success: function(data){
console.log(data);
},
error: function(request){
console.log(request);
},
});
PUT
和DELETE
通过$。并非所有浏览器都支持ajax
POST
和GET
是所有浏览器都支持的两种浏览器
如需参考,请查看`$.ajax上的jQuery文档:
此外,您需要更改HTTP守护进程的设置,以允许脚本访问put。通过将以下内容添加到root.htaccess来完成此操作:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ handler.php?uri=$1 [L,QSA]
请注意,要进行这些修改,您必须访问mod_rewite
请参见php文档中的
PUT
此处:WooHoo多亏了这个问题,我才找到了答案
出于某种原因,如果您请求像这样的“PUT”数据
file_get_contents("php://input")
在第一次读取时,它将获得所有数据。但是,第二次像这样使用它获取数据的尝试将返回null。波斯特的情况并非如此。我只需要这样做,我们只需要像上面那样请求一次数据
我的理论(可能是B);)
我认为它读取PUT请求的方式就像读取文件或流,如果有一种方法可以将读取器设置为重新开始,则可能会获取该数据。这只是我关于它如何工作的理论,我没有任何资源支持它这样工作。从我的研究来看,大多数当前浏览器都支持ajax PUT、DELETE。但是HTML5已经从标准中删除了它,我假设这只影响html而不是Javascript?我尝试在IIS7中添加URL重写,但它不喜欢重写基线/行。你能再解释一下这是怎么回事吗?这可能有助于将数据公开给php。谢谢