Javascript 为什么我无法将JS对象成功发布到PHP?
我已经研究了这么多的问题,并遵循了那些被回答的人的建议,包括,但我仍然在努力让这项工作发挥作用。我准备了一个简化的测试 JS&HTMLJavascript 为什么我无法将JS对象成功发布到PHP?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我已经研究了这么多的问题,并遵循了那些被回答的人的建议,包括,但我仍然在努力让这项工作发挥作用。我准备了一个简化的测试 JS&HTML <html lang="en"> <head> <meta charset="utf-8" /> <title></title> <script src="https://ajax.googl
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(function () {
data = {};
data.subject = "Change the subject";
/*
$.post('php/test.php', { jsonData: JSON.stringify(data) }, function (response) {
console.log($(response).html());
});
*/
$.ajax({
url: 'php/test.php',
data: data,
contentType: 'application/json',
cache: false
}).done(function (result, success, xhr) {
console.log("result=" + result);
}).fail(function (xhr, desc, err) {
var msg = "Send mail - " + "\nError: " + "\n" + xhr.responseText;
console.log(msg);
});
});
</script>
</head>
<body>
<form id="form" name= "form" >
<input id="subject" name="subject" value="not a subject" />
</form>
</body>
</html>
控制台日志
test.html:22结果=(!)致命错误:未捕获异常 带有消息“需要主题”的“异常”。在 /home/deje/public_html/writers tryst/php/test.php在线 12(!)例外情况:需要主题。在里面 /home/deje/public_html/writers tryst/php/test.php在线 12调用堆栈#TimeMemoryFunctionLocation 10.0003248416{main}()…/test.php:0 附加错误日志: [2016年5月10日01:50:45 UTC]PHP致命错误:未捕获异常 带有消息“需要主题”的“异常”。在 /home/deje/public_html/writers-tryst/php/test.php:12堆栈跟踪: 第12行的/home/deje/public_html/writers-tryst/php/test.php中抛出了0{main} 编辑 网络表:
对于
$,默认的方法是GET
,更改为POST
$.ajax({
url: 'php/test.php',
data: data,
method: 'post',
cache: false
}).done(function (result, success, xhr) {
console.log("result=" + result);
}).fail(function (xhr, desc, err) {
var msg = "Send mail - " + "\nError: " + "\n" + xhr.responseText;
console.log(msg);
});
在test.php中
$subject = array();
$subject[] = 'assign values';
echo json_encode($subject);
你为什么要注释掉/*$.post('php/test.php'…*/
?你的(post)数组依赖于它。否则,它默认为GET。或者在您的表单中指定它
,那么告诉我们错误报告给您带来了什么?顺便说一句,您下面有一个答案,如果这是问题所在,那么您的问题中没有包含该错误。我注释掉了$.post,因为我尝试了它,它产生了与answe相同的结果r在我添加了方法/类型:POST后提供。错误日志报告了与我发布的相同的错误信息(我也发布了错误日志)。我没有放弃这个问题,我有一些紧迫的事情。在我看来,这并不是所提到的问题的重复。通过添加print\r($\u POST)检查$\u POST内容;die;
在您的if语句之前。这样您就可以看到您实际发送到php文件的内容。谢谢,@iamvain2。我学到了一些东西。据说如果。您不笑或学到一些东西,这一天就被浪费了。根据Jquery文档():Type是方法的别名。如果您使用的是1.9.0之前版本的jQuery,则应使用Type。结果证明您是对的。我也将数据对象更改为序列化。
$subject = array();
$subject[] = 'assign values';
echo json_encode($subject);