Jsonp跨域访问不会传输数据 求教

发布于 2022-09-04 19:14:53 字数 2186 浏览 14 评论 0

本人前端小白一个,遇到了跨域访问的问题,特来求教.如下为postman自动生成的jquery脚本,在postman中可用,但是放到某个html中后,访问时,会出现跨域访问拒绝的问题,如下图1所示。

var form = new FormData();
form.append("data", "[{\"serviceUrl\" : \"/bank_auth\",\"apiKey\" : \"3FE8D08DB99D326D\",\"areacode\":\"000000\"} ]");

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "http://xxx.xxx.com:58080/gateway-web-1.8.0/getTicket",
  "method": "POST",
  "headers": {
    "cache-control": "no-cache",
    "postman-token": "932148f8-c97b-631c-5a3e-8411a622abd9"
  },
  "processData": false,
  "contentType": false,
  "mimeType": "multipart/form-data",
  "data": form
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

图片描述

             图1
             
             

如下是我从网上找的利用jsonp的访问代码,倒是可以成功访问到getTicket接口,但是
怎么把如上面代码所示的data传给服务端呢?,求教
这问题,对于但凡有点前端基础的人,应该是很简单,但是我这种小白,是在不会呀!

<script>
        function submitForm(){
            var form = new FormData();
            form.append(
                            "data",
                            "[{\"serviceUrl\" : \"/bank_auth\",\"apiKey\" : \"3FE8D08DB99D326D\",\"areacode\":\"000000\"} ]");
            var url = 'http://xxx.xxxxx.com:58080/gateway-web-1.8.0/getTicket';
           $.ajax(url, {  
             data: form,  
             dataType: 'jsonp',  
             crossDomain: true,  
             success: function(data) {  
               if(data && data.resultcode == '200'){  
                 console.log(data.result.today);  
               }  
             }//success: function(data)  
           });  //$.ajax(url, { 
        }//function submitForm()
        function clearForm(){
            $('#ff').form('clear');
        }
    </script>

如下是我服务端的RESTFUL接口:

    @RequestMapping(value = "/getTicket", method = { RequestMethod.POST, RequestMethod.GET })
    public String executeTicket(HttpServletRequest request, HttpServletResponse response, String data)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花桑 2022-09-11 19:14:53

jsonp只能Get,你可以考虑使用CORS来跨域

 function submitForm() {
     var url = 'http://xxx.xxxxx.com:58080/gateway-web-1.8.0/getTicket';
     $.ajax({
         url: url,
         method: 'post',
         contentType:'application/json',
         data: JSON.stringify({
             serviceUrl: 'bank_auth',
             apiKey: '3FE8D08DB99D326D',
             areacode: '000000'
         }),
         dataType: 'json',
         crossDomain: true,
         success: function(data) {
                 if (data && data.resultcode == '200') {
                     console.log(data.result.today);
                 }
             } //success: function(data)  
     }); //$.ajax(url, { 
 } //function submitForm()
 function clearForm() {
     $('#ff').form('clear');
 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文