我使用名为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: *');
它会起作用,至少对我起作用。