gpt4 book ai didi

angularjs - 预检响应具有无效的 HTTP 状态代码 403

转载 作者:可可西里 更新时间:2023-11-01 16:47:47 24 4
gpt4 key购买 nike

我正在使用服务器端 Spring-boot 并为测试提供虚拟服务

我的 ServiceCaller.java=

package com.user.server.mfw;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.handler.MappedInterceptor;


@RestController
public class ServiceCaller {
@CrossOrigin(allowedHeaders="*",allowCredentials="true")
@RequestMapping(value="/serviceCaller",method=RequestMethod.POST, headers="content-type=text/*")
@ResponseBody
String serviceListener(@RequestParam("serviceName") String serviceName,HttpSession session,HttpServletRequest theHttpServletReq ) throws IOException
{


if(!serviceName.isEmpty())
{
byte[] encoded = Files.readAllBytes(Paths.get("C://Users//something//Desktop//asd.json"));
return new String(encoded, "UTF-8");
}
return "gelemedi";
}


private void checkActiveSessionControl(HttpSession session)
{
System.out.println("Session Id:" + session.getId() +" // " + session.getCreationTime());
if(session == null)
System.out.println("Null");
else if(session.isNew())
System.out.println("New");
else
System.out.println("Old");
}



}

我的客户端是一个基于 angular.js 的 ionic 框架...

Controller.js

   $scope.getInfo = function() {
$http({
url: SERVER_ENDPOINT.url + '/serviceCaller',
method: 'POST',
params: {serviceName: 'deneme'},
withCredentials: true
}).then(function(result) {
var alertPopup = $ionicPopup.alert({
title: 'ALOHA!',
template: 'dksjd ' + result
});
$scope.memberInfo = result.data.accountNumber;
}, function() {
var alertPopup = $ionicPopup.alert({
title: ' failed!',
template: 'da'
});
}

);
};

当我使用 POST 方法而不是 GET 时,基本上我会收到“无效的 HTTP 状态代码 403”。但是我想使用 POST 来调用而不是 GET。但是我不知道我在哪里犯了错误....

任何解决方案将不胜感激!

最佳答案

如果您的浏览器正在发送飞行前的 OPTIONS 请求,您所要做的就是通过允许 http OPTIONS 在您的 WebSecurity 配置中允许该请求。

.antMatchers(HttpMethod.OPTIONS, "/**").permitAll()

关于angularjs - 预检响应具有无效的 HTTP 状态代码 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34694786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com