使用PHP Slim Framework实现的Rest Service返回Ajax错误函数,尽管Ajax方法有效并且数据


Rest Service implemented using PHP Slim Framework return Ajax error function, although the Ajax method works and the data was saved?

我使用名为Slim的PHP框架实现了一个Rest Service,该服务运行良好,因为我也在SoapUI中进行了测试,并且运行正常。该服务非常简单,只需将数据保存到txt文件中即可。尽管当我使用Ajax post方法通过javascript使用服务时,它是有效的,并且数据保存在文件中,但执行错误函数而不是成功函数。有什么想法吗,出了什么问题?

服务->PHP SLIM框架

<?php
require 'vendor/autoload.php';
$app=new 'Slim'Slim();
$app->post('/gravar_documento', 'gravar_doc');
function gravar_doc(){
    $request=Slim'Slim::getInstance()->request();
    $data=$request->getbody();
    $dados=json_decode($data,true);
    file_put_contents('test.txt',  $dados["test"]);
    $app=Slim'Slim::getInstance();
    $response = $app->response();
    $response['Content-Type'] = 'application/json';
    $response->status(200);
    $response->body(json_encode((object) array('success'=>true)));
}
$app->run();

AJAX

$.ajax({
        type:'POST',
        url: "Service_url->hidden for safety",
        data: JSON.stringify( { test: 1, val: 2} ),
        success: function(data){
            alert("IN");
        },
        error: function(data){
            alert("Fail");
        }
    });

感谢

您仍然需要看到返回的数据,这就是为什么您应该console.log返回数据。回调数据与字符串化的数据不在同一范围内。如果您在发出警报之前输出数据,它将告诉您API对您的请求的响应是什么。

我终于可以得到解决方案了。我要感谢所有试图帮助我的人,简单的解决方案是在PHP代码的第一行中添加以下内容:

header('Access-Control-Allow-Origin: *');

它会起作用,至少对我起作用。