远程服务不向ajax帖子发送响应

时间:2017-02-14 22:03:28

标签: php jquery ajax

我正在使用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;在我的服务器端文件中,我在那里进行其他故障排除。一旦我删除它并只有发布的服务器端代码。现在一切都很好看。向前!!

1 个答案:

答案 0 :(得分:-1)

如果我理解正确你想向另一个域发出ajax请求。它因Same origin policy而被屏蔽。实现目标您可以实施JSONP