美文网首页
跨域Ajax方法

跨域Ajax方法

作者: 战神顾北辰 | 来源:发表于2019-01-18 13:39 被阅读0次

原文来自 -- 跨域Ajax方法 – Eson小博客 uninote

经典Ajax示例:

  • XMLHttpRequest原生方式
var request = new XMLHttpRequest();
request.open("POST", "index.php");
var data = "parameter1" + encodeURIComponent(parameter_one) + "&parameter2" + encodeURIComponent(parameter_two);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send(data);
request.onreadystatechange = function() {
    if (request.readyState===4) {
        if (request.status===200) {
            var ret = request.responseText;
            //做有意义的事

        } else {
            alert("发生错误:" + request.status);
        }
    }
}
  • jQuery
$.ajax({
    type:"POST",
    url:'index.php',
    dataType:"json",
    data:{
        "parameter1":parameter_one,
        "parameter2":parameter_two
    },
    success:function(ret){
        //做有意义的事

    },
    error:function(jqXHR){
        if (jqXHR.status!=200) {
            alert("发生错误:" + jqXHR.status);
        }
    }
});

跨域Ajax方案:

方案A:JSONP

  • 前端请求页面:
$.ajax({
    type:"POST",
    url:'http://127.0.0.1/test/Ajax_jsonp/service.php',
    dataType:"jsonp",
    jsonp:"jsonp",
    data:{
        "parameter1":parameter_one,
        "parameter2":parameter_two
    },
    success:function(ret){
        //做有意义的事
        alert(JSON.stringify(ret));
        console.log(ret);
    },
    error:function(jqXHR){
        if (jqXHR.status!=200) {
            alert("发生错误:" + jqXHR.status);
        }
    }
});
  • 后端响应页面:
    注意后端响应是GET
<?php 
if (!empty($_GET['jsonp'])) {
    $jsonp = $_GET['jsonp'];
    $ret = json_encode($_GET);
    echo "{$jsonp}({$ret})";
}

方案B:XHR2服务端添加响应头信息(IE10以下不支持)

header("Access-Control-Allow-Origin:*");//允许所有来源访问
header("Access-Control-Allow-Method:POST,GET");//允许访问的方式

终极方案:后端代理

curl

相关文章

  • 解决ajax跨域问题

    Jsonp解决ajax跨域问题 CORS解决ajax跨域问题

  • 跨域Ajax方法

    原文来自 -- 跨域Ajax方法 – Eson小博客 uninote 经典Ajax示例: XMLHttpReque...

  • 实用程序库

    解决ajax跨域方法: jsonp 服务器代理 跨域资源共享 一、moment momentjs官网[https:...

  • 前端跨域

    什么是ajax跨域 ajax跨域的原理 ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”,可以参...

  • 手机端跨域的两种方式,如何连到电脑端的服务器接口

    /** 一:js直接跨域提交(这个看上去像ajax,然后利用jsonP进行跨域,注意url写法) **/ 这个方法...

  • AJAX 跨域请求常用两种处理方法

    AJAX 跨域请求常用两种处理方法 -- 第一、 使用 跨域资源共享(CORS) CORS(Cross-Origi...

  • javaweb 中的跨域请求

    方法一 、使用ajax进行跨域请求 方法json数据 配置拦截器用于允许指定的请求跨域 为含有/json/的url...

  • 跨域

    跨域:ajax 不能跨域img css script 标签 可以跨域例如:《img src="images/...

  • 关于跨域

    跨域的几种方法及优缺点 1. JSONP跨域 优点:它不像XMLHttpRequest对象实现的Ajax请求那样受...

  • Http浅析【2】——ajax跨域问题

    视频参考:ajax跨域完全讲解 本文精华版:【综合】ajax跨域问题 什么是跨域问题 简单来讲,当前台调用后台,如...

网友评论

      本文标题:跨域Ajax方法

      本文链接:https://www.haomeiwen.com/subject/zmkndqtx.html