我正在尝试将带有ajax的json发送到php文件,因为我尝试了下面的代码
使用jquery
var dummyData = {'bob': 'foo', 'paul': 'dog'};
var ajaxRequest = $.ajax({
url: "json_handler.php",
type: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(dummyData ),
dataType: "json"
});
ajaxRequest.done(function (response, textStatus, jqXHR) {
console.log(response + textStatus + jqXHR);
alert('sd');
});
ajaxRequest.fail(function (e) {
console.log(e);
});
我只是在var_dump($_REQUEST)
处json_handler.php
而且ajax请求一直在失败并且没有在响应文本中得到任何内容
当我尝试
时$json = file_get_contents('php://input');
var_dump($json);
我得到了json但是ajax请求仍然失败。
我也尝试过这个javascript,我的代码在下面
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = stateHandler;
httpRequest.open("POST", "json_handler.php", true);
httpRequest.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
httpRequest.send( JSON.stringify(dummyData ));
这是我的控制台日志
答案 0 :(得分:4)
请参阅,因为您的ajax有CREATE PROCEDURE Sp_m_ii_2_kaydet @mtu INT,
@mod INT,
@moid INT,
@uid INT
AS
INSERT INTO m_ii2_alisfatura
(muhtur,mturid,muhodm,modmid,uid)
SELECT @mtu,CASE
WHEN @mtu = 3 THEN (SELECT Max(id)
FROM m_ii1_vsf_personel)
WHEN @mtu = 2 THEN (SELECT Max(id)
FROM m_ii1_vsf_firma)
WHEN @mtu = 4 THEN (SELECT Max(id)
FROM m_ii1_vsf_taseron)
END,@mod,@moid,@uid
,所以它期待dataType: "json"
格式的响应,就像json
一样,并且您不是{key:value} or [{k:v}, {k:v}, ....]
任何json结构,所以这是你的ajax失败的地方。
对我来说,你必须这样写:
echo
答案 1 :(得分:0)
您的请求似乎很好,但为什么要对JSON进行字符串化?
您可以发布有效负载数据:
data: dummyData
要调试和测试您的json帖子,您可以使用扩展名作为Postman或Advanced Rest Client。