我正在Spring MVC中进行PayU支付网关集成,当时我应该使用已经实现的Java类的jars。为了做到这一点,我创建了一个控制器类,在其中我调用了包含的jar的必需方法。现在,当我发出ajax请求时,它向我显示以下错误:
加载失败
http://localhost:8081/ABHI/payupg/payReqHDFC/600/SAU/Robert/robert@gmail.com/9876543210?{}:
对预检请求的响应未通过访问控制检查:所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问原始“空”。
我的Ajax请求如下:
<html>
<head>
<script type="text/javascript" src="C:/Users/myFolder/Desktop/code_testing/jquery.js"></script>
<script type="text/javascript">
function test(){
var testData = {}
//var testData = {"userName":"robert","password":"Test@12345"}
var URL= "http://localhost:8081/ABHI/payupg/payReqHDFC/600/SAU/Robert/robert@gmail.com/9876543210";
$.ajax({
url : URL,
async :false,
type : 'GET',
dataType : 'json',
data: JSON.stringify(testData),
contentType : 'application/json',
mimeType : 'application/json',
crossDomain : true,
success : function(data) {
console.log(JSON.stringify(data,null,4));
alert(data);
},
error : function(data, status, er) {
console.log(JSON.stringify(data,null,4));
console.log("Errors : "); //+data.responseJSON.errorMessage
}
});
}
</script>
</head>
<body>
<button onClick="test()"> Click me </button>
</body>
</html>
我的PayUController.java是:
@Controller
@RequestMapping(value = "/payupg")
public class PayuController {
@Autowired
HdfcController hdfcController;
@RequestMapping(value = { "/payReqHDFC/{amount}/{productInfo}/{firstname}/{email}/{phone}" },
method = {org.springframework.web.bind.annotation.RequestMethod.GET })
public String paymentGateway(Model model, @PathVariable String amount, @PathVariable String productinfo,
@PathVariable String firstname, @PathVariable String email, @PathVariable String phone) throws Exception {
System.out.println("inside controller");
String str=hdfcController.payReqHDFCGateway(model,null,amount,productinfo,firstname,email,phone,null,null,null,null,null,null,null,null,null);
System.out.println("End of inside controller");
// return "hdfcPayReq";
// return PGConstants.HDFC_PAY_REQ_PAGE;
return str;
}
}
为进一步澄清,我想说您可以避免CROS-Origin问题。
在此付款网关中,几乎有15个参数要发送,其中5-6个参数是强制性的。我只发送这些邮件,其余的我将其设置为空。