我正在使用WAMP 3.0.8 PHP 7.0.10 Apache 2.4.23并尝试构建我的第一个JSON API。
ajax调用会将数据发送到服务器。我可以看到它存储在文本文件中。
我的AJAX看起来像这样。
$(document).ready(function(){
$('#order').click(function(){
var send = {"name":"Jo Moe", "age":39, "city":"Meridian"};
var prescription = JSON.stringify(send);
$.ajax({
type: 'POST',
dataType: 'JSON',
url: 'https://apa.superserver.com/receive.php',
data: {"scripts": prescription},
success: function(data){
console.log(data);
alert(data);
$('#success').html('<p>Finished</p>');
}
});
});
});
服务器端如下所示:
if(isset($_POST["scripts"]) && !empty($_POST["scripts"])){
$sent = filter_input(INPUT_POST, "scripts", FILTER_SANITIZE_SPECIAL_CHARS);
$scripts = html_entity_decode($sent);
file_put_contents("jsonScript.txt", $scripts);
$finish = "Message Received!";
echo json_encode($finish);
}
现在,当它在同一台服务器上时,这一切都有效。当我将receive.php分开并将其放在远程服务器上时。它不再显示响应。
谢谢!
更新:
Get json ajax php form to work remotely
上面的链接修复了我的问题,并在控制台中给了我更多信息,以弄清楚发生了什么。 (我不应该给-1)这里搜索索引的问题是,如果你不使用帖子中的确切条款,那么几乎不可能找到。 (我的两分钱)
添加错误功能并更改&#34;数据&#34;回应&#34;回应&#34;与xhr一起发挥了作用。我可以看到一切。
这是我回到控制台:
Object {readyState: 4, responseText: "↵↵hello!"Message Received!"", status: 200, statusText: "OK"}
ajax.php:56 parsererror
ajax.php:57 SyntaxError: Unexpected token h in JSON at position 0
at JSON.parse (<anonymous>)
at parseJSON (jquery-1.6.4.min.js:2)
at b$ (jquery-1.6.4.min.js:2)
at w (jquery-1.6.4.min.js:4)
at XMLHttpRequest.d (jquery-1.6.4.min.js:4)
如您所见,响应文本是服务器发回的内容。 我必须修改我的httpd.conf来打开mod_headers.c并添加了一个.htaccess。
更新2:
找出导致解析错误的原因。我有一个印刷品&#34;你好!&#34;在我的服务器端文件中,我在那里进行其他故障排除。一旦我删除它并只有发布的服务器端代码。现在一切都很好看。向前!!