当前位置: 首页 > news >正文

ajax jsonp跨域

js跨域问题是指:js不同域进行数据传输或通信之间,让我们用ajax到不同的域请求数据。或js获得在不同领域的框架页(iframe)数据。只有到协议、域名、port无论是有不同的。它们被认为是不同的域。
js跨域参考:http://www.cnblogs.com/2050/p/3191744.html
能够通过jsonp实现js跨域,可是获取的数据必须是脚本文件,比如json。
以下介绍jquery.ajax方法
jQuery.ajax(url,[settings]);url是必填的。其它都是选填的。
经常使用格式:
$.ajax({
url:url,
type:"get",
dataType: "jsonp",
sucess:function(data){}
});
主要选项介绍:
1)type:请求方式 ("POST" 或 "GET"),默觉得GET;
2)dataType:

预期server返回的数据类型。假设不指定,jQuery将自己主动依据HTTP包MIME信息来智能推断,比方XML MIME类型就被识别为XML。在1.4中。JSON就会生成一个JavaScript对象,而script则会运行这个脚本。随后server端返回的数据会依据这个值解析后,传递给回调函数。可用值: 
"xml": 返回 XML 文档。可用 jQuery 处理。


"html": 返回纯文本 HTML 信息。包括的script标签会在插入dom时运行。


"script": 返回纯文本 JavaScript 代码。不会自己主动缓存结果。除非设置了"cache"參数。'''注意:'''在远程请求时(不在同一个域下)。全部POST请求都将转为GET请求。(由于将使用DOM的script标签来载入)
"json": 返回 JSON 数据 。


"jsonp": JSONP 格式。使用 JSONP 形式调用函数时。如 "myurl?callback=?" jQuery 将自己主动替换 ? 为正确的函数名,以运行回调函数。
"text": 返回纯文本字符串
3)async:(默认: true) 默认设置下。全部请求均为异步请求。


假设须要发送同步请求,请将此选项设置为false。

同步请求将锁住浏览器。用户其他操作必须等待请求完毕才干够运行。注意:用jsonp实现跨域。仅仅能使用异步提交,不管你是否设置async。參见:http://api.jquery.com/jQuery.ajax/
原文:Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.
4)data:发送到server的数据
data选项既能够包括一个查询字符串,比方 key1=value1&key2=value2 ,也能够是一个映射。比方 {key1: 'value1', key2: 'value2'} 。

假设使用了后者的形式,则数据会被转换成查询字符串。
5)jsonp:在一个jsonp请求中重写回调函数的名字。这个值用来替代在"callback=?"这样的GET或POST请求中URL參数里的"callback"部分,比方{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给server。
6)jsonpCallback:为jsonp请求指定一个回调函数名。这个值将用来代替jQuery自己主动生成的随机函数名。

这主要用来让jQuery生成度独特的函数名,这样管理请求更easy。也能方便地提供回调函数和错误处理。

你也能够在想让浏览器缓存GET请求的时候,指定这个回调函数名。


7)username和password选项
假设server须要HTTP认证。能够使用username与password能够通过username和password选项来设置。
8)success(data, textStatus, jqXHR):请求成功后的回调函数。
9)timeout:设置请求超时时间(毫秒)
。此设置将覆盖全局设置。
注意。当程序中须要发起多个AJAX请求时,则不用再为每个请求配置请求的參数,全部的选项都能够通过$.ajaxSetup()函数来全局设置
举例:

$.ajaxSetup({
    timeout: 3000,
    dataType: 'html',
    //请求成功后触发
    success: function (data) { show.append('success invoke!' + data + '<br/>'); },
    //请求失败遇到异常触发
    error: function (xhr, status, e) { show.append('error invoke! status:' + status+'<br/>'); },
    //完毕请求后触发。即在success或error触发后触发
    complete: function (xhr, status) { show.append('complete invoke! status:' + status+'<br/>'); },
    //发送请求前触发
    beforeSend: function (xhr) {
    //能够设置自己定义标头
    xhr.setRequestHeader('Content-Type', 'application/xml;charset=utf-8');
    show.append('beforeSend invoke!' +'<br/>');
    },
  })


版权声明:本文博主原创文章,博客,未经同意不得转载。

转载于:https://www.cnblogs.com/blfshiye/p/4806175.html

相关文章:

  • AJAX实例
  • linux命令中 rpm –qa|grep softname的含义
  • Android:设置背景图和标题
  • 浙江大学PAT考试1069~1072(2013-11-2)
  • Bootstrap轮播Carousel样式的应用
  • 第3.3 案例2: 工作队列 job queue
  • 根据新浪天气API获取各地天气状况(Java实现)
  • spring的学习
  • 网站通常使用一些javascript包裹 简化电话
  • 我的开始--大道至简的第一章
  • 学习一样新东西行而有效的方法 学习捷径 一项由10个步骤组成的学习方法
  • VS2010中汉字拷贝到Word出现乱码问题解决
  • hdu 5119 Happy Matt Friends (dp)
  • Json.Net系列教程 1.Json.Net介绍及实例
  • PHP 数据结构
  • php的引用
  • (三)从jvm层面了解线程的启动和停止
  • Android系统模拟器绘制实现概述
  • javascript面向对象之创建对象
  • Java程序员幽默爆笑锦集
  • JAVA之继承和多态
  • js操作时间(持续更新)
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • 编写高质量JavaScript代码之并发
  • 三分钟教你同步 Visual Studio Code 设置
  • 设计模式 开闭原则
  • 算法---两个栈实现一个队列
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 跳前端坑前,先看看这个!!
  • 再谈express与koa的对比
  • No resource identifier found for attribute,RxJava之zip操作符
  • 阿里云ACE认证之理解CDN技术
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (1)(1.13) SiK无线电高级配置(六)
  • (1)SpringCloud 整合Python
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (Forward) Music Player: From UI Proposal to Code
  • (层次遍历)104. 二叉树的最大深度
  • (简单) HDU 2612 Find a way,BFS。
  • (四) 虚拟摄像头vivi体验
  • (四)linux文件内容查看
  • (一)为什么要选择C++
  • .bat批处理(六):替换字符串中匹配的子串
  • .Net Remoting常用部署结构
  • .net 发送邮件
  • .NET关于 跳过SSL中遇到的问题
  • .NET是什么
  • @RequestParam详解
  • [04] Android逐帧动画(一)
  • [C++] 如何使用Visual Studio 2022 + QT6创建桌面应用
  • [codevs 1515]跳 【解题报告】
  • [codevs] 1029 遍历问题
  • [Django ]Django 的数据库操作
  • [EFI]Acer Aspire A515-54g电脑 Hackintosh 黑苹果efi引导文件