jQuery实现跨域
之前看到过用jsonp实现跨域,一直没有用到。现在刚好有个东西要到。试过了网上的很多方法,都没有用。最后终于搞清楚了用法,记录一下。
客户端:
<!-- lang: js -->
$(document).ready(function(){
$.ajax({
type: 'GET',
async: false,
url: remote_url,
dataType: 'jsonp',
jsonp: 'callback',
jsonpCallback: 'fun',
data: {a: 'b'},
sucess: function(json) {
alert(json);
}
});
});
function fun(json) {
alert(json);
}
服务器端
header('Content-Type: application/json; charset=utf-8');//输出头
//your code
echo $GET['callback'] . '(' . json_encode($GET) . ')';
一定要调用客户端js中的回调函数,不然会出错。
关于js跨越,上面一种方法需要服务端的配合,输出回调函数。
假如需要访问别人的网站抓取一些东西,除了用iframe之外,如果需要使用js,如何来处理呢。
我们知道,服务端访问远程链接,是不存在跨域问题的。因此,我们可以绕一个弯,使用js访问我们本地的程序,在程序中访问我们的目标网址。这是一种新的思路,有需要的可以尝试一下。
相关推荐
-
用jQuery与JSONP轻松解决跨域访问的问题
时间过得好快,又被拉回js战场时, 跨域问题这个伤疤又开疼了. 好在,有jquery帮忙,跨域问题似乎没那么难缠了.这次也借此机会对跨域问题来给刨根问底,结合实际的开发项目,查阅了相关资料,算是解决了跨域问题..有必要记下来备忘. 跨域的安全限制都是指浏览器端来说的.服务器端是不存在跨域安全限制的,所以通过本机服务器端通过类似httpclient方式完成"跨域访问"的工作,然后在浏览器端用AJAX获取本机服务器端"跨域访问"对应的url.来间接完成跨域访问也是可以的
-
jQuery跨域问题解决方案
通过XMLHTTPRquest请求不同域上的数据,原来js跨域访问是后台有个处理路径"/test"的函数.下面把具体解决方案介绍如下. 后台处理路径"/test"的函数: 复制代码 代码如下: //路径处理 app.get("/test",user.test); //处理函数 exports.test=function(req,res){ res.end("alert('JS跨域访问')"); }; 外部有一个网页需要
-
jquery使用淘宝接口跨域查询手机号码归属地实例
复制代码 代码如下: <h1>手机号码归属地查询</h1> <div class="outer"> <p>请输入手机号码</p> <input type="text" > <span class="button">查询</span> <span class="error&q
-
jquery+ajax实现跨域请求的方法
本文实例讲述了jquery+ajax实现跨域请求的方法.分享给大家供大家参考.具体实现方法如下: 说明:这里的dataType 为 "jsonp" :type 只能为 GET 前台请求代码如下: 复制代码 代码如下: $.ajax({ type: "GET", url: "http://www.xxx.com/Rest/ValidAccountsExists.aspx?accounts=admin", dataType: "j
-
jquery的ajax跨域请求原理和示例
今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式.分别是JQuery的 jquery.ajax jsonp格式和jquery.getScript方式. 什么是jsonp格式呢?API原文:如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型.
-
jquery ajax跨域解决方法(json方式)
最近公司开发的项目中很多地方需要跨域ajax请求,比如几个子域名下 http://a.****.com/index123.aspx, http://b.****.com/index2.aspx 都要请求用户json信息,然后再对数据进行处理,起初我和同事们试了很多种方法,使用$.ajax() 无论是get或post方法都会引起uri deny的错误.一番GG之后发现了解决方法,也了解其中的原因. jquery从1.2开始,.getJSON就支持跨域操作了.使用jquery.getJSON()方法
-
jquery的ajax和getJson跨域获取json数据的实现方法
很多开发人员在使用jquery在前端和服务器端进行数据交互,所以很容易会认为在前端利用jquery就可以读取任何站点的数据了.近日在进行开 发时,因为要和第三方公司的一个项目进行数据的共享,因为考虑多不占用服务器的资源,遂决定直接在html进行数据的读取,不走服务器端进行中转了.然后 正好就遇到了浏览器端跨域访问的问题. 跨域的安全限制都是指浏览器端来说的,服务器端不存在跨域安全限制的问题. 目前浏览器端跨域访问常用的两种方法有两种: 1.通过jQuery的ajax进行跨域,这其实是采用的jso
-
jquery ajax jsonp跨域调用实例代码
客户端代码 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApp.WebForm1" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
-
jquery跨域请求示例分享(jquery发送ajax请求)
jQuery中常用getJSON来调用并获取远程的JSON字符串,将其转换为JSON对象,如果成功,则执行回调函数.原型如下: jQuery.getJSON( url, [data], [callback] ) 跨域加载JSON数据. url: 发送请求的地址data : (可选) 待发送key/value参数callback: (可选) 载入成功时的回调函数主要用于客户端获取服务器JSON数据.简单示例: 服务器脚本,返回JSON数据: 复制代码 代码如下: // $.getJSON.php$
-
JQuery 的跨域方法推荐_可跨任何网站
因发现有不少博友发园内短信问及JS的跨域问题,我想很多程序员的脑海里面还认为JS是不能跨域的,其实这是一个错误的观点:有很多人在网上找其解决方法,教其用IFRAME去解决的文章很多,真有那么复杂吗?其实很简单的,如果你用JQUERY,一个GETJSON方法就搞定了,而且是一行代码搞定. 下面开始贴出方法. //跨域(可跨所有域名) $.getJSON("http://user.hnce.com.cn/getregion.aspx?id=0&jsoncallback=?",fun
-
ASP.NET配合jQuery解决跨域调用的问题
一. 使用JSONp方式调用 不做详细讲解,可以参考jq文档<jQuery 1.10.3 在线手册> 二. 服务端配置 修改Web.config 文件 <system.webServer> <modules runAllManagedModulesForAllRequests="true"></modules> <httpProtocol> <customHeaders> <add name="Ac
-
jQuery.ajax 跨域请求webapi设置headers的解决方案
解决跨域调用服务并设置headers 主要的解决方法需要通过服务器端设置响应头.正确响应options请求,正确设置 JavaScript端需要设置的headers信息 方能实现. 1.第一步 服务端设置响应头,在webapi的web.config做如下设置 <system.webServer> <httpProtocol> <!--跨域配置开始--> <customHeaders> <add name="Access-Control-All
-
jQuery 获取跨域XML(RSS)数据的相关总结分析
前段时间项目,需要前端JS获取跨域XML(RSS),最先打算使用jQuery.ajax方法获取,但是在ie9以下,提示"拒绝访问的" 略尴尬,网上查找了相关资料总结了以下几种方法: 一.google的jGFeed:相信很多同学对这个应该不陌生,使用也相对简单: 源码: (function($){ $.extend({ jGFeed : function(url, fnk, num, key){ // Make sure url to get is defined if(url == n
-
jQuery Jsonp跨域模拟搜索引擎
效果还不错 就差加上键盘控制了... 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>迷糊网罗</title> <style type="text/css"> * { margin: 0; padding: 0; } form { position: absolute; left: 50%; to
-
JQuery Ajax跨域调用和非跨域调用问题实例分析
本文实例讲述了JQuery Ajax跨域调用和非跨域调用问题.分享给大家供大家参考,具体如下: 现在的互联网技术发展的越来越快,我们在开发过程中遇到的问题也越来越多.比如当我们需要进行跨域访问数据的时候该如何进行开发?本篇博文就记述如何使用Ajax进行跨域访问调用数据. 1.非跨域调用 我们用到的最多是这样的方式,也就是非跨域的进行访问,只是简单的在我们的网页中进行Ajax使用即可.如下面代码: /** * 非跨域请求方式 */ function feikuayu() { $.ajax({ ty
-
JQuery Ajax 跨域访问的解决方案
具体情况有: 一.本域和子域的相互访问: http://www.aa.com/和book.aa.com 二.本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 iframe 三.本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 XMLHttpRequest访问代理 四.本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 JS创建动态脚
-
Jquery实现跨域异步上传文件总结
先说明白 这个跨域异步上传功能我们借助了Jquery.form插件,它在异步表单方面很有成效,而跨域我们会在HTTP响应头上添加access-control-allow-method,当然这个头标记只有IE10,火狐和谷歌上支持,对于IE10以下的浏览器来说,我们就不能用这种方式了,我们需要换个思路去干这事,让服务端去重写向我们的客户端,由客户端(与文件上传页面在同域下)来返回相关数据即可. 1.Jquery.form的使用 <form method="post" action=
-
基于jquery的跨域调用文件
官方的文档特别说明,该函数只适用于1.2以后的版本,之前的版本是不行滴. 复制代码 代码如下: function GetCrossDomainContent() { $.getScript("http://two.xthost.info/im0417/cnblogs.txt", function() { if (typeof (msg) != "undefined") { $("#TestCrossDomain").val(msg[0]); }
随机推荐
- Windows环境利用虚拟机Vmware安装Mac OS10.11(图文)
- 详解Java的Spring框架中的注解的用法
- 浅析如何在tnsnames.ora中配置监听
- 浅谈WKWebView 在64位设备上的白屏问题
- asp.net导出Excel类库代码分享
- 获取阴历(农历)和当前日期的js代码
- javascript 绘制矩形框
- 解决 ASP.NET中目录访问权限的问题
- php缓存技术介绍
- 解析iOS应用开发中对设计模式中的抽象工厂模式的实现
- 利用js获取服务器时间的两个简单方法
- jQuery中eq()方法用法实例
- SSH整合中 hibernate托管给Spring得到SessionFactory
- Script的加载方法小结
- 阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
- 如jQuery般易用的api风格代码分享
- 简单谈谈javascript中的变量、作用域和内存问题
- 一个收集图片的bookmarlet(js 刷新页面中的图片)
- Java ArrayDeque实现Stack的功能
- python提取页面内url列表的方法