我最近开始将旧的Classic ASP
网站翻译为PHP
。其中有几个页面(Response.ContentType = "application/json")
只会提供JSON
个{"R":1}
响应,而且一切正常。
现在在PHP上,header("content-type:application/json")
首先在代码上,ajax只是不会解析它。客户端JS代码与我之前使用的相同。我甚至都碰过它。
$.ajax({
dataType: "json",
type : "POST",
url: "processthisrequest.php",
cache: false,
async: false,
data: { Field1:"bla", Field2:"blabla"},
error: function(data){
// code on error
},
success: function(json){
// code on success
}
});
如果请求被接受,则所有提供的请求都是{"R":1}
,并带有双引号,因为它始终是。
无论如何,Ajax都会触发错误函数。试图调试它我发现了这个:
readyState:4
responseText:{"R":1}
status:200
statusText:OK
寻求帮助我发现很多人在使用ajax时遇到问题状态:4,状态:200且响应仍然没有被解析。没有一个解决方案适用于我的问题。
因为它正在使用IIS / ASP,它可以是Apache或PHP吗?
更新
仍然没有成功,但如果我让服务器用{"R":1}
提供 .js 文件而不是通过php页面处理响应,ajax将触发成功函数。这只能证明我的观点,这是一个php问题,也解释了为什么它与旧的恐龙ASP一起工作。现在为什么PHP没有提供正确的mime类型是我想要弄清楚的。