PHP POST api 在邮递员中工作,但在颤振应用程序中不工作
Posted
技术标签:
【中文标题】PHP POST api 在邮递员中工作,但在颤振应用程序中不工作【英文标题】:PHP POST api is working in postman but not working in flutter application 【发布时间】:2020-08-27 15:49:10 【问题描述】:我使用 php 创建了 API,它按预期工作,并在我在 POSTMAN 中运行时返回结果。但是当我尝试在 Flutter 中调用相同的 API 时,它不起作用。下面是我的 Flutter 代码。
【问题讨论】:
你能在日志中显示错误吗? 你确定你应该对帖子数据进行 JSON 编码吗?检查此问题的答案:***.com/questions/61741007/… 否则,发布工作邮递员请求的屏幕截图。 (请求,而不是响应。) 我添加了有问题的邮递员回复。 【参考方案1】:确保在您的 PHP 应用程序中启用了 CORS。这很可能是这个问题的原因。要添加 CORS 支持以便您可以从任何域访问,请将标头添加到响应中:Access-Control-Allow-Origin: *
对于域限制和有关 CORS 工作原理的其他信息,我会查看:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
【讨论】:
感谢 Brighton 的回复,请您指导如何在 php 中启用 CORS。我还上传了代码屏幕截图和邮递员请求,效果很好...... @Abhishek 看起来应该可以:enable-cors.org/server_php.html 或通过 apache 添加标头enable-cors.org/server_apache.html【参考方案2】:我能解决问题,使用下面的代码。
static Future<String> addusernew(String firstName, String lastName, String email, String pass) async
try
http.Response response = await http.post(url, body:
"action":_ADD_USER_ACTION,
"firstname":firstName,
"lastname":lastName,
"email":email,
"pass":pass
);
if(response.statusCode == 200)
print("addUser Response 200 : $response.body");
return response.body;
else
print("addUser Response Error : $response.body");
return "Error Adding User";
catch(e)
return "Error Adding User : $e.toString()";
【讨论】:
以上是关于PHP POST api 在邮递员中工作,但在颤振应用程序中不工作的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 Http 401 错误,但在邮递员中工作,而不是在 xamarin 表单中工作
Django Rest Framework - response.set_cookie() 不在浏览器中设置 cookie,但在邮递员和可浏览 api 中工作
在颤振代码中添加授权标头会返回错误响应,而相同的请求在邮递员中工作正常
我正在从 express API 向颤振应用程序发送 GET 请求,但我没有得到任何输出