zoukankan      html  css  js  c++  java
  • JQuery Ajax 跨域请求

    第一种方式

    客户端JS:

     1         function httpRequest(arg,successCallback,errorCallback){
     2               $.ajax({
     3                   type: "get",
     4                   url:serverAddress,
     5                   async: false, //是否为同步or 异步,默认同步(true)
     6                   cache:false, //请求格式为jsonp ,script默认为false ,其它为true ,  这里可以不用添加
     7                   data:arg,      //请求参数,也可以拼接在url后边
     8                   dataType: "jsonp",
     9                   jsonp:"callback",
    10                   jsonpCallback :"jsoncallback",
    11                   timeout : set_Timeout,         //超时处理
    12                   success : successCallback,       //成功回调
    13                   error : errorCallback            //错误回调
    14               })
    15           }

    //调用

    var arg = {name:'zs'}
    httpRequest(arg,succCallback,errCallback);

    function succCallback(msg){
    //msg返回一个对象,解析JSON格式
    }

    function errCallback(){
    //fail msg
    }


    服务器端代码

     String callbackFunName = context.Request["callback"];  //jsonp :callback 对应的值,默认不写就是callback
    
     context.Response.Write(callbackFunName + "(" +{ 'name':'John'}+")");
    

     

    jsonp: "callback"
    jsonpCallback:"jsonpCallback"

    这两个参数最终会拼接在请求的url后面,变成 http://www.xxx.com/ajax/xxx.ashx?callback=jsonCallback

    ps:注意:这种方式需要客户端与服务器端 ,同时调整下数据请求方式及服务器响应。

    第二种方式

         PHP 解决跨域 ,在文件头加下边这两句代码,JS 就不需要JSONP。

    header("Access-Control-Allow-Origin: *");
    header('content-type:application/json;charset=utf8');  
    

      

    java 解决跨越

    xxx.setContentType("application/json; charset=utf-8"); 
     
    xxx.getResponse().addHeader("Access-Control-Allow-Origin","*");//'*'表示允许所有域名访
    
    or
    
    
    /*这里可以忽略*/ 服务器端要使用 request.getParameter("jsonpCallback");//客户端请求参数 out.println(jsonpCallback+"("+resultJSON(data)+")");//返回jsonp

      

  • 相关阅读:
    5M1E,软件质量管理最佳解决方案
    Laravel 刚创建的项目 API 无法使用 Session,是没有在Api的请求内开启Session
    python添加默认模块搜索路径
    [传纸条]
    [miller_rabin]
    国内rog游戏手机2与国际版本的 差别
    windows下依端口查进程
    gor phone 2 优缺点
    IDA pro 6.8 导入cpu解析模块报错 ImportError: No module named ida_ bytes
    JEB 4.5 新增 RISC-V 反编译器支持
  • 原文地址:https://www.cnblogs.com/congxueda/p/5074198.html
Copyright © 2011-2022 走看看