js如何把ajax获取的值返回到上层函数里?
我现在有个系统在用户点击浏览时,系统会以ajax的方式从后台获取查看的链接,并以window.open的方式打开,但因为现在多数的浏览器都会拦截window.open打开的地址,而window.location.href的方式又无法在浏览器新窗口打开,所以我现在只能通过在前台页面的onclick函数中实现window.open(使用该方式,浏览器不会拦截),我原来的代码是如下这样的:
function GetViewUrl(bookID, $, layer, siteURL) {$.ajax({type: "post",data: { 'BookID': bookID },datatype: "text/json",scriptCharset: 'utf-8',url: siteURL 'Parts/GetViewUrl',success: function (year) {if ($.trim(year) != '') {var defalutFileName = bookID '.html';url = siteURL 'Parts/ViewItem/' year '/' bookID '/' defalutFileName;window.open(url);}},error: function () {}});}
我现在想修改该段代码,让这个函数返回url,可以给外部的函数调用,这段代码要怎么改?其实很简单:只要修改三个地方:
1.在该段代码新增一个全局返回的变量
2.把该段ajax调用的方式改为非异步,也就是新增一个 async: false,
3.在最后返回定义的全局变量
代码如下:
function GetViewUrl(bookID, $, layer, siteURL) {
var url = '';//定义要返回给外部函数的值
$.ajax({
async: false,//这一步非常重要
type: "post",
data: { 'BookID': bookID },
datatype: "text/json",
scriptCharset: 'utf-8',
url: siteURL 'Parts/GetViewUrl',
success: function (year) {
if ($.trim(year) != '') {
var defalutFileName = bookID '.html';
url = siteURL 'Parts/ViewItem/' year '/' bookID '/' defalutFileName;//从服务器获取值
}
},
error: function () {
}
});
return url;//返回值
}
js如何把ajax获取的值返回到上层函数里?相关推荐
- Chart.js使用及ajax获取数据
图表插件Chart.js使用 插件简介 安装 插件简介 chart.js是一个优秀的开源图表处理插件,内置条形,折现,雷达,时间刻度等等图表渲染. 安装 chart.js官网. 我这里使用2019年3 ...
- c语言 方程改main的值_c语言main函数里的参数argv和argc解析
前言 一般我们平时写main函数的话,一般都是写不带参数的比较多,而且也习惯了这样写:其实标准的形式写法,main函数是带两个参数的,这两个参数分别是:argc和argv,那么这两个参数是表示什么意思 ...
- ajax获取session值_java程序员你真的了解session与cookie吗?
1.基础: session信息是保存在服务器端,而cookie是保存在客户端(浏览器),这个是最基础的概念,如果你这一点都不知道,再去查查资料再往下读. 具体的js.java相关的session与co ...
- 如何用 ajax 连接mysql数据库,并且获取从中返回的数据。ajax获取从mysql返回的数据。responseXML分别输出不同数据的方法。...
开讲前,先说下网上,大部分的关于这方面的博文或者其他什么的,就我自己的感觉,第一说得不详细,第二语言不能很好的被初学者了解. 我这篇博文的标题之所以用了三句,是为了方便其他人好查找: 这里介绍的方法有 ...
- ajax获取session值_cookie和session基础知识学习
一.session的简单使用 session是服务器端技术,服务器在运行时可以为每一个用户的浏览器创建一个独享的session对象. session的使用步骤: 获取session对象 使用sessi ...
- ajax获取session值_【JavaWeb】91:Cookie与Session
今天是刘小爱自学Java的第91天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 学cookie之前,我先说一个问题: 如果我设置浏览器不保存cookie. 会发现很多网站都没法登录了. 购物 ...
- ajax值传递给其他函数,jquery中ajax返回值无法传递到上层函数
function通过ajax调用获取后台数据,结果返回出来的结果均为空,代码如下: function chart_coinbase_getdata() { var test = {postdata:& ...
- ajax成功进入success但是获取不到返回值
一.前言 最近做前端的时候,发现个奇怪的问题,ajax获取不到返回值了,问题是还是会到success中,也是可以正常打印的,就是没有response,奇怪. 二.正文 1.首先是不走success的问 ...
- Ajax怎么获取data为集合的值,vue,ajax获取本地的json文件,赋值后,computed和mounted里访问不到重新赋值后的listDatas...
ajax获取本地的json文件,取到数据之后赋值给data的listDatas,view页面更新了,但是computed和mounted里访问不到重新赋值后的listDatas,除了在$get()里能 ...
最新文章
- 李彦宏的百度 AI 落地战略,由王海峰来实现
- 2019Java常见面试下
- memcache缓存服务器(nginx php memcache mysql)
- unity自发光透明shader
- 《剑指offer》左旋转字符串
- dataframe输出某列的数据以及统计某列的取值种数+输出某行数据
- Oracle入门(十四D)之常规函数
- 【渝粤教育】广东开放大学 劳动人事争议处理法 形成性考核 (51)
- 动态分区分配的“首次适应算法_动态图划分复制算法:Leopard
- android excel布局,Android实现仿excel数据表格效果
- ABAP和Java单例模式的攻防
- git与github学习笔记
- 面试问题(工作动机、个人愿望 )
- 林正隆(coolfire)
- visual studio code输入感叹号没有提示
- C++ trivial和non-trivial构造函数及POD类型
- 关于canvas的学习心得(三)(计算错误)
- [YNOI2017]由乃的商场之旅 莫队
- 苹果开发者账号注册第一步,Apple ID 的双重认证,为 Apple ID 设置双重认证
- dcs常用的冗余方式_DCS的冗余
热门文章
- 使用java自带的日志管理_java日志管理
- 查询阜阳2021高考成绩,2021年阜阳高考成绩排名及成绩公布时间什么时候出来
- 路由器上的usb接口有什么用_路由器的USB接口,非常强大的功能,教您轻轻松松玩转,太实用了...
- 计算机c盘哪些东西可以清理,细说电脑c盘哪些文件可以删除
- java 运行 .jar 文件乱码
- RxSwift 系列(一)
- JavaWeb(十七)——JSP中的九个内置对象
- mongodb查询内嵌文档
- JS的对象及其属性和方法
- 明天一定要记得放一个硬币在口袋