![](/img/trans.png)
[英]JSON string from server side not coming properly using ajax jquery
[英]Error reciving json at server side using ajax
我試圖將帶有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); });
我只是在json_handler.php
做var_dump($_REQUEST)
並且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 ));
這是我的控制台日志
看看因為你的ajax有dataType: "json"
所以它期待json
格式的響應,就像{key:value} or [{k:v}, {k:v}, ....]
而你是不echo
任何json結構,所以這是你的ajax失敗的地方。
在我看來你必須這樣寫:
$json = file_get_contents('php://input');
echo json_encode($json);
您的請求似乎很好,但為什么要對您的JSON進行字符串化?
您可以發布有效負載數據:
data: dummyData
要調試和測試您的json帖子,您可以使用擴展名作為Postman或Advanced Rest Client。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.