角度 POST 请求不起作用但 GET 工作正常

     2023-03-04     6

关键词:

【中文标题】角度 POST 请求不起作用但 GET 工作正常【英文标题】:angular POST request not working but GET working fine 【发布时间】:2016-03-09 19:54:23 【问题描述】:

我知道有人问过这个问题,但我尝试了很多方法,但无法完成。

我正在从我的 Angular 应用程序向 laravel 后端 api 发出 GET 和 POST 请求。我能够从 get 请求中获取 json,但我的 POST 请求因 json 数据类型而失败。它适用于

x-www-form-urlencoded

但我无法提取 json 格式的数据。

$http.get('http://api.app.mywebsite.com/users').success(function(data)
    $scope.user = data;
);

$scope.addUser = function(user)
    console.log($scope.user);
    $http(
        method: 'POST',
        url: 'http://api.app.mywebsite.com/users',
        dataType: 'json',
        data: $scope.user,
        headers: 'Content-Type': 'application/json; charset=utf-8' 
    ).then(function(result)
        console.log(result);
    , function(error)
        console.log(error);
    )


$scope.user is posted on form submit.

我得到的错误:-

XMLHttpRequest cannot load http://api.app.mywebsite.com/users. 
Response     to preflight request doesn't pass access control check: 
No 'Access-Control-    Allow-Origin' header is present on the 
requested   resource. Origin 'http://app.mybackend.com' is therefore not     allowed access.

我在 laravel 中的 CORS.php 中间件:-

public function handle($request, Closure $next)

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

    // ALLOW OPTIONS METHOD
    $headers = [
        'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE',
        'Access-Control-Allow-Headers'=> 'Content-Type, X-Auth-Token, Origin, X-Requested-With, Accept'
    ];
    if($request->getMethod() == "OPTIONS") 
        // The client-side application can set only headers allowed in Access-Control-Allow-Headers
        return \Response::make('OK', 200, $headers);
    

    $response = $next($request);
    foreach($headers as $key => $value)
        $response->header($key, $value);
    return $response;
    return $next($request);

routes.php

Route::group(['middleware' => 'cors'], function()

    Route::resource('users', 'UserController');
);

【问题讨论】:

究竟什么是“不工作”?您是否收到错误消息?请更清楚您的预期和实际发生的情况。 我收到以下错误消息“对预检请求的响应未通过访问控制检查:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。”更新我的问题。 根据浏览器的预检发送了哪些标头? Accept:*/* Accept-Encoding:gzip, deflate, sdch Accept-Language:en-US,en;q=0.8 Access-Control-Request-Headers:accept, content-type Access- Control-Request-Method:POST Connection:keep-alive Host:api.app.mywebsite.com Origin:app.mybackend.comReferer:app.mybackend.com User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML , 像壁虎) Chrome/46.0.2490.86 Safari/537.36 【参考方案1】:

更新: http://let-aurn.github.io/laravel-5-cors/

您需要配置您的 http 服务器以允许 cors 类似的问题: How to enable CORS in AngularJs

并且: AngularJS performs an OPTIONS HTTP request for a cross-origin resource

【讨论】:

我的服务器正在为 GET 请求工作,这意味着 CORS 正在工作,所以我假设客户端有一些问题.. 还要检查添加的 SO 问题。

Laravel 5 GET 正在工作,但 POST 方法不起作用

】Laravel5GET正在工作,但POST方法不起作用【英文标题】:Laravel5GETisworkingbutPOSTmethodisnotworking【发布时间】:2016-09-0409:49:13【问题描述】:我是Laravel的新手,遇到了一个奇怪的问题。在路由中,我通过POST和GET方法调用函数。GET返... 查看详情

PHP $_POST 不工作,但 $_GET 工作正常

...一切正常,但是当我将脚本上传到服务器(Windows)时它不起作用;$_POST数组好像 查看详情

用 Postman 发送 POST 参数不起作用,但发送 GET 参数可以

】用Postman发送POST参数不起作用,但发送GET参数可以【英文标题】:SendingPOSTparameterswithPostmandoesn\'twork,butsendingGETparametersdoes【发布时间】:2014-08-0120:31:19【问题描述】:我正在尝试使用Chrome扩展Postman测试一个简单的PHP页面。当我... 查看详情

邮递员的简单删除请求不起作用

】邮递员的简单删除请求不起作用【英文标题】:SimpledeleterequestwithPostmannotworking【发布时间】:2021-12-0410:51:40【问题描述】:使用node.js、express、mongodb和mongoose创建一个简单的电话簿应用程序。Get和Post请求工作正常,Post请求存... 查看详情

AngularJS和rails cors标头不起作用

...间】:2014-05-0310:44:33【问题描述】:我正在尝试构建一个角度水疗中心,但在使用cors时遇到了问题。我的api在rails上运行。GET请求正常工作,但POST、PUT、DELETE不起作用。消息是:XMLHttpRequestcannotloadhttp://local 查看详情

Axios POST 请求不起作用

】AxiosPOST请求不起作用【英文标题】:AxiosPOSTrequestnotworking【发布时间】:2018-12-2500:52:03【问题描述】:我知道有很多关于相同问题的问题,但没有一个解决方案对我有用。我有一个使用Lumen内置API的ReactJS应用程序。该API也被Reac... 查看详情

我的 post route 不起作用,postman 认为是 GET 请求

】我的postroute不起作用,postman认为是GET请求【英文标题】:Mypostroutedoesn\'twork,postmanthinksitisGETrequest【发布时间】:2022-01-0601:33:40【问题描述】:我有我的资源路由,它适用于GET,但它不适用于post方法Route::resource(\'cart\',CartControll... 查看详情

POST 请求不工作,但 GET 工作正常。请求的资源上不存在“Access-Control-Allow-Origin”标头

】POST请求不工作,但GET工作正常。请求的资源上不存在“Access-Control-Allow-Origin”标头【英文标题】:POSTrequestisnotworking,butGETisworkingfine.No\'Access-Control-Allow-Origin\'headerispresentontherequestedresource【发布时间】:2020-01-0204:11:19【问题描... 查看详情

POST 方法不起作用但未显示任何错误

】POST方法不起作用但未显示任何错误【英文标题】:POSTMETHODisnotworkingbutnotshowinganyError【发布时间】:2019-03-2622:35:06【问题描述】:我是PHP新手。我在我的项目中使用下面的代码,但它不工作但它没有抛出任何错误。我试图将其... 查看详情

req.user 在 axios POST 请求中未定义,但 GET 工作正常

】req.user在axiosPOST请求中未定义,但GET工作正常【英文标题】:req.userisundefinedinaxiosPOSTrequestbutGETworksjustfine【发布时间】:2021-03-2116:10:59【问题描述】:据我所知,here、here和其他一百个问题帖子中也有人问过类似的问题。所以我... 查看详情

POST 被 CORS 策略阻止,GET、DELETE 正常工作

...这样构建的ts(angular)->java(spring)。我随便添加了一些从角度到java的Get,也删除了请求,但是当我要添加发布请求时遇到了问题。我的应用程 查看详情

发布请求在 Laravel 中不起作用

】发布请求在Laravel中不起作用【英文标题】:PostrequestnotworkinginLaravel【发布时间】:2018-10-0602:57:57【问题描述】:我是Laravel的新手,正在尝试做一个简单的post请求,但它不起作用。重定向到/o2后显示objectnotfound。有人可以解释... 查看详情

Nodejs(express)正在运行但请求不起作用

】Nodejs(express)正在运行但请求不起作用【英文标题】:Nodejs(express)runningbutrequestsnotworking【发布时间】:2019-10-2405:30:34【问题描述】:我运行我的项目后端“server.js”(快递)。它工作正常,没有任何问题。但是我从Postman或其... 查看详情

使用python请求不起作用,但邮递员工作(代码片段)

我使用Django(Python3.5)并尝试request.post到一个url但它返回错误405.在postman我选择post方法并在body填充我的数据,标题是Content-Type:application/x-www-form-urlencoded,结果为true。我的python脚本是:importrequestsasrlogin_data='UserName':'uuuuu',' 查看详情

$http.post 在 AngularJS 中不起作用

...代码可以工作,但如果我使用$http.post,我永远不会获得请求.php文件的参数。这是服务功能:TestPanel.service(\'MySampleService\',function($http,$q)t 查看详情

简单的 Javascript http 请求片段但不起作用

】简单的Javascripthttp请求片段但不起作用【英文标题】:SimpleJavascripthttprequestsnippetbutnotwork【发布时间】:2013-09-1615:50:13【问题描述】:部分教程修改代码如下:xmlhttp=newXMLHttpRequest();varurl="get_data.pl";xmlhttp.open("POST",url,true);xmlhttp.se... 查看详情

在邮递员中获取请求工作但在浏览器中不起作用

】在邮递员中获取请求工作但在浏览器中不起作用【英文标题】:GetRequestworkinpostmanbutdoesn\'tworkinbrowser【发布时间】:2019-10-0213:39:18【问题描述】:我的Web应用程序在客户端使用Angular7,在Api中使用CakePHP我正在使用BasicAuthentication... 查看详情

“DELETE”类型的 Http 请求在 WebAPI 中不起作用?

】“DELETE”类型的Http请求在WebAPI中不起作用?【英文标题】:The"DELETE"typeofHttprequestdoesnotworkinWebAPI?【发布时间】:2013-05-1205:04:47【问题描述】:我的WebAPI项目中有GET、PUT、POST工作。我正在做的最后一个Http请求是DELeTE,... 查看详情