如何php获取ajax请求的url到ajax url地址

js如何获取ajax提交的url_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
js如何获取ajax提交的url
a页面使用ajax 请求b页面,b页面怎么获取ajax请求的url是ajax的,不是地址栏的。
我有更好的答案
而HTTP是无连接协议, 服务器无法访问客户端另一页面的.实际上你只是要根据另一页面的内容更新当前页面, 只要能在a页面获得b页面的window对象引用就可以访问b页面了(a和b在同个域名下), 如果是互相独立的弹出窗口, 除非是访问另一页面的服务器端缓存. 如果是平级的iframe那遍历父窗体的iframe就可以这位同学概念混淆了无论什么请求一定是发往服务器的
是的,是要根据另一页面更新当前页面,首先是参数没办解决,其次是我用b填充a里面的内容b页面中有btn方法,当我 填充到a,btn方法肯定是不能用的,而我用frame指向也是做不到的。我总不可能都写在top里面吧。
top里只要保留各个页面的window引用a页面里 top.window.allWindow.b_window_id就能获得b页面的window引用~要调用函数, 访问对象, DOM都可以
请问top页面所谓保留每个页面引用是 值的 main 单个页面吧。比如我打开的a页面,刷新显示了b页面的部分内容,我top里面存的main 的window是a的,我怎么得到b的方法?
每个页面onload里把自己window对象引用写到TOP里任意页面都可以访问topmain页面:var pageA, pageB;a页面onload: top.window.pageA =b页面onload:top.window.pageB = //引用a页面: top.window.pageA.fn1();这样
采纳率:49%
来自团队:
b页面用request获取不到吗?我没试过,如果不行的话你可以把a页面的地址当成ajax地址的参数传过去啊。如b.html?url=a页面地址
可能我表述有点问题,我是要在a页面请求b将b页面的东西填充到a页面中b.html?url=a 没意义了。
你的意思是在b页面判断请求是来自于ajax请求还是浏览器直接请求?
ajax我就是要得到ajax请求的url
本回答被网友采纳
你可以在Ajax提交成功或者失败的函数返回提交的url,这样再赋值给全局变量,就可以通过js获取了。
不知你后台用的什么语言,request就可以获取到。
和后台没关系,只能拿js获取
document.referrer
获取来源url,再做字符串折分。
传递一个参数 自己判断
说的容易,你怎么判断,怎么取值?
其他2条回答
为您推荐:
其他类似问题
您可能关注的内容
ajax的相关知识
等待您来回答AJAX传参,JS获取当前URL参数,当我们需要获取页面的URL参数的时候,可以通过下面这段JS代码获取:
var getParam = function(name){
var search = document.location.
var pattern = new RegExp(&[?&]&+name+&\=([^&]+)&, &g&);
var matcher = pattern.exec(search);
var items =
if(null != matcher){
items = decodeURIComponent(decodeURIComponent(matcher[1]));
}catch(e){
items = decodeURIComponent(matcher[1]);
}catch(e){
items = matcher[1];
调用方法:
alert(getParam('参数名'));
URL参数示例:?cid=123&dsf=12&ids=9384
alert(getParam('cid')); &======》结果123
alert(getParam('ids')); ======》结果9384
注:该方法无论任何长度的参数,中间间隔多少个参数,只要你的查找的请求参数参数名对应,就能找出!使用AJAX开发必备啊!如果大家有更好的方法解决AJAX传参问题,老猫愿闻其详!
本文已收录于以下专栏:
相关文章推荐
方法一:正则分析法
function getQueryString(name) {
var reg = new RegExp(&(^|&)& + name + &=([^&]*)(&|$)...
$.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()
一、$.ajax的一般格式
type: 'POST',
有个url如下:
http://passport.csdn.net/account/login?from=http%3a%2f%2fwrite.blog.csdn.net%2fpostedit
* 订单取消
* @return {Boolean} 处理是否成功
function orderCancel(orderId, commant){
var flag...
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。
type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如p...
URL带中文参数,后台获取乱码
情况:做分页时,需要带中文参数跳转页面,代码放本地测试没问题,可放到服务器上,点击下一页时就会出现空白,中文参数变成乱码
原因:为防止乱码,本地更改了tomcat\...
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选服务器。
在Window...
第一步:Tomcat 的下载
官方下载网址为:http://tomcat.apache.org/下载界面如下:选则Download下你要安装的版本进行下载
第二步:安装Tomcat
            url : 'http://21.203.1.47/gjs/example.php?id=va',//...
前言:今天项目进去攻关
他的最新文章
讲师:汪剑
讲师:刘道宽
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
我拿到一个接口,想测试这个接口是否没有问题。如果是get请求的话,直接在url链接上拼一个参数(?a=1),看返回的json就好了。如果是post怎样测试呢?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
百度的API调试工具:很好用的O(∩_∩)O~
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
本地的话,可以使用firfox的插件hackbar,可以支持发送post请求。具体用法可以搜下,很简单。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
GET 能看返回的 json,难道 POST 就不能吗?
另个,测试接口可以使用
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
可直接ajax的post方法提交个参数,或者写个post的表单提交
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
如果是用 jquery话
type: 'POST',
success:function(json){
//这里就能知道是否返回成功
dataType: dataType
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
调试神器—&F12
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
Firefox插件:httprequest谷歌浏览器应用:postman
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
用postman谷歌插件做调试
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
写一个FORM表单,action地址填上API地址即可。这个应该是最简单的方法只一!
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:URL对象 ajax(object)
URL对象 ajax(object)
这是一个Ajax调用的基础方法. 程序根据传入的object参数所拥有的属性进行相应的AJAX请求.
object 为一个对象类型的参数,此对象可选属性字段如下表:
注意:下表中的函数:beforeSend, complete, success, error的内部对象&this&均指向当前的URL对象。
&POST&或&GET&(不区分大小写),指定发送AJAX请求的方法类型。
  对于GET请求,提交的所有数据变量都将以"名称=值&名称=值"的形式附加到URL地址后面进行发送;
  对于POST请求,除通过构造方法传入的数据变量仍然附加到URL地址后面以外,其它调用set或sel等方法设置进来的数据变量,都将以POST方式发送(注意:如果调用set或sel等方法所设置的变量名在构造方法传入的地址中已经存在,即程序只是修改了这个变量,它将仍然附加在URL地址中进行发送)。
  如果不指此参数,程序将根据构造方法和相关SET方法传入的参数进行自动选择,选择方式是:如果此URL对象除了构造方法传进来的那些参数变量名称序列之外,用户没有再另外SET其它数据变量,那么将以GET方式发送请求,否则如果还SET了其它名称的参数变量,则以POST方式发送请求。(请见本页下面的)
如果服务器支持,除POST或GET以外的其它类型的请求也是可以的。
请求返回的数据类型,可取值(不区分大小写):
&html&: 指示返回数据类型为HTML字符串(默认值)。
&xml& : 指示返回数据类型为一个XML文档。
&json&: 指示返回的数据类型为一个JSON 脚本对象。
&script&: 指示返回的数据类型为一个js脚本,该脚本将被执行。
指示是否以异步的方式调用AJAX(默认为true,代表异步请求)。
  当指定为同步请求时,回调函数没有意义(如果指定了回调函数,该函数不会执行)。如果同步请求时指定了参数type值为"script",在返回xmlHttp对象之前,请求响应的结果字符串会当作脚本代码先被执行。
  强烈建议不要采用同步方式,因为在同步请求的过程中,如服务器响应太慢,将会造成浏览器窗口卡死,直到同步请求结束。这绝对不是一个良好的用户体验。
指示是否缓存数据(默认为true)。
一般情况下,请求总能够被发送出去,但浏览器有可能从它的缓存中调取数据。通过设置此属性值为false,来禁用浏览器缓存,以使每次的请求都从服务器上读取。
ifModified
指示是否仅在服务器端内容变更时获取数据(默认为false)。
程序将检查Last-Modified和Etag头信息,确定服务器端内容是否被修改过.
对于需要频繁访问或有大量数据传输的AJAX请求,通过设置此属性值为true, 并在回调函数中检查参数的值,仅在服务器变更时获取和处理数据,将极大节省数据传输量,加快请求响应时间.
一个大于或等于0的整数,用于指定请求超时时间,(默认值)为0表示不指定超时时间.
当请求超时后,程序将中止该AJAX请求,并执行error回调函数(状态=&timeout&).
指定发送至服务器的编码类型,默认值&application/x-www-form-urlencoded&适用大多数情况。
如果URL地址资源需要用户名/密码认证,此参数用于指定认证用户名。
如果URL地址资源需要用户名/密码认证,此参数用于指定认证密码。
自定义要发送给服务器端的数据。如果指定了此参数,在此之前set的数据都将附加到URL地址后面,XMLHttpRequest将只send此处指定的数据内容。例如,需要发送一个XML文档给服务器,而不是传统的POST字符串,您可以在此指定要发送的XML Document对象。
beforeSend
function(xhr)
在发送请求之前调用此函数,此函数接受一个参数xhr,该参数是对XMLHttpRequest对象的引用。您可以在请求发送之前修改XMLHttpRequest对象,例如添加自定义的HTTP头。
如果此函数明确地返回false,将取消此AJAX请求。
function(d,state)
回调函数: 当(异步)请求成功时调用此函数。
此函数接收两个参数,第一个参数d代表请求返回的数据(数据类型由&&所指定);第二个参数为请求响应结果的字符串状态(可能返回的字符串状态见下表)。
function(xhr,state)
回调函数: 当(异步)请求失败时调用此函数。
此函数接收两个参数,第一个参数xhr是对XMLHttpRequest对象的引用,第二个参数为请求响应结果的字符串状态(可能返回的字符串状态见下表)。
function(xhr,state)
回调函数: 当(异步)请求完成时调用此函数。无论请求成功还是失败,此函数都将被调用。
此函数接收两个参数,第一个参数xhr是对XMLHttpRequest对象的引用,第二个参数为请求响应结果的字符串状态(可能返回的字符串状态见下表)。
state状态值
下表列出了AJAX回调函数(complete, success, error)中的state参数,可能返回的字符串状态.
其中&出现位置&指: 该状态值只会出现在在指定的回调函数中.
状态值(字符串)
success, complete
AJAX请求成功,并且正常返回了服务器端的数据内容.
notmodified
success, complete
AJAX请求成功,但由于服务器端数据内容没有更改,本次仅返回了响应头内容,无返回数据.
error, complete
AJAX请求失败,服务器端发生错误. 您可以通过xhr.status获取服务器端返回的错误状态码.
error, complete
AJAX请求操时.(操时时间由上表的属性定义.)
parsererror
error, complete
AJAX请求返回的不是一个正确的XML文档.
当设置=&xml&,且返回的数据不是一个有效的XML文档时,将出现此状态信息.
对于异步操作(=true)时,没有返回值;
对于同步操作,将始终返回发送请求的XmlHttpRequest对象本身(可以通过xmlHttpRequest对象的responseText属性,获取响应结果字符串)。同时,如果在发送请求时指定了参数type的值为"script",在返回之前,同步请求响应的结果字符串会当作脚本先被执行。
加载并执行一个JS文件。
JSer.url(&test.js&).ajax({
&&& type:&script&
  特别注意下面代码中四个数据变量传递方式的区别:Act和add仍跟在url地址后面进行发送(Act=save&add=2);而后面的set方法所设置的两个数据变量name和age将以POST的方式发送!
  这是因为JSer规定(见本页上面的参数表中的说明):当以POST发送请求时,除通过构造方法传进来的那些数据变量之外(例如这儿的Act和add),其它通过调用set或sel进来的变量都将以POST的方式发送.
  虽然代码中也调用set方法设置了一个add=2的数据变量,但它并没有以POST方式发送,因为它在构造方法传入的地址中已经存在,此时set方法做的事情仅仅是修改了构造方法中的add变量的值。
  另外值得向大家提一下,在这种情况下,由于“除通过构造方法传入的数据变量之外,还通过set方法设置了其它的数据变量(即这里的name, age)”条件成立,因此,即使不指定method参数,程序也将以POST方式发送(即可以省略掉method)。而省掉method后,剩下的就只有一个success了,而这又可以使用URL对象的方法来替代,使代码更加简洁。
JSer.url(&action.do?Act=save&add=1&).set({name:'张三', age:18})).set("add", 2).ajax({
&&& method:&post&,
&&& success:function(d){
&&&&&&& alert(&return data:& + d);
保存数据到数据库,成功后显示结果信息。
JSer.url(&save.do&).sel(&:input&).ajax({
&&& method:&post&,
&&& success:function(d){
&&&&&&& alert(&return data:& + d);
仅在服务器端数据发生更改时载入数据。
JSer.url(&list.do?cid=3&).ajax({
&&& ifModified:true,
&&& success:function(d, state){
&&&&&&& if(state=='success'){
&&&&&&&&&&& JSer(&#infoDIV&).html(d);
同步方式请求数据。发送请求时将锁住浏览器。在需要锁定用户交互操作时,采用同步操作。
var html = JSer.url(&test.do&).ajax({
&&& async:false
}).responseText;
探测服务器的类型。只需要发送一个HEAD请求即可(HEAD请求只会返回响应头部信息,不会发送消息主体)。
JSer.url(&test.html&).ajax({
&&& method:&head&,
&&& complete: function(xhr){
&&&&&&& alert(xhr.getResponseHeader(&Server&));
向服务器发送一个XML文档内容。
JSer.url(&saveXml.Servlet&).ajax({
&&& method:&POST&,
&&& send: '&?xml version=&1.0& encoding=&utf-8&?&&root&&content&only a test&/content&&/root&',
&&& success: function(d){
&&&&&&& alert(d);
我们以Java Servlet为例,说明服务器端接收XML的示例代码:
Java Servlet代码片段:
import java.io.*;
BufferedReader in = request.getReader();
String realPath = request.getServletContext().getRealPath(&/saved-data.txt&);
File f = new File(realPath);
FileWriter fw = new FileWriter(realPath);
BufferedWriter bw = new BufferedWriter(fw);
&&& while ((line = in.readLine()) != null) {
&&&&&& out.println(line);
&&&& & bw.write(line);
&&&&&& bw.newLine();
&&& bw.close();
&&& fw.close();
&&& out.print(&saved data ok!&);
} catch (Exception e) {
&&& e.printStackTrace();
&&& out.println(&Mission Completed&);HTML5无刷新修改URL
HTML5新添加了两个api分别是pushState和replaceState,DOM中的window对象通过window.history方法提供了对浏览器历史记录的读取,可以在用户的访问记录中前进和后退,我们可以开始操作这个历史记录堆栈。
实例一、通过pushState修改URL
通过这句代码可以无刷新改变URL
window.history.pushState({},0,url);
DEMO代码:
&!DOCTYPE html&
&meta charset=&utf-8& /&
&title&HTML5无刷修改url - 琼台博客&/title&
&script type=&text/javascript&&
function changeURL(){
var url = document.getElementById('url').
window.history.pushState({},0,'http://'+window.location.host+'/'+url);
&h1&html5无刷新改变url&/h1&
&div id=&info& style=&margin:30px 0;&&
页面真实地址:
&span style=&color:&&&script type=&text/javascript&&document.write(window.location.href);&/script&&/span&
请输入要改变地URL字符串:&input id='url' type=&text& /&
&button onclick=&changeURL();&&点击无刷改变url&/button&
&div style=&color:margin-top:30&&请使用支持html5的浏览器访问&/div&
&div style=&margin-top:30&&&a href=&http://www.qttc.net/.html& target=&_blank&&《html5无刷新改变URL》&/a& - 琼台博客&/div&
在input输入框内输入haha.html点击&点击无刷新改变url&按钮即可实现
实例二、利用ajax配合pushState翻页无刷新的动作
主要在ajax发起数据请求,在数据页面响应后利用pushState修改分页参数,达到模拟真实翻页效果,并且写入历史表达到后退时能恢复上一页的数据
demo-page.html代码:
&!DOCTYPE html&
&meta charset=&utf-8& /&
&title&HTML5无刷修改url - 琼台博客&/title&
&script type=&text/javascript&&
var changeURL = function(){
if(location.href.indexOf(&?&) & -1){
var arr = location.href.split('?');
var urlbase = arr[0];
var pageObj = arr[1].match(/page=(\d+)/);
var page = Number(pageObj[1]) || 1;
var urlbase = location.
var page = 1;
var content = document.getElementById(&content&);
var ajax = new XMLHttpRequest();
// 调用数据回掉函数
var ajaxCallback = function(){
if(ajax.readyState == 4){
result = eval('('+ajax.responseText+')');
content.innerHTML = result.
next.href = urlbase + &?page=& + (page + 1);
// push到历史记录里,可以在点击后退时从历史记录里恢复内容
// 并且无刷修改url地址
window.history.pushState({content:content.innerHTML,page:page},page,urlbase + &?page=& + page);
// 点击事件
document.getElementById('next').onclick = function(event){
if(!load){
content.innerHTML = '加载中数据中...(注意看数据返回后url改变)';
ajax.open('GET','shuju.php?page='+page, true);
ajax.onreadystatechange = ajaxC
ajax.send('');
// 记录到历史里,当点击后退按钮还退回上次页面请求前的页面内容
window.onpopstate = function(){
content.innerHTML = history.state.
page = history.state.
// 修改当前页面在 history 中的记录
window.history.replaceState({content:content.innerHTML,page:page},page,urlbase + (page & 1 ? '?page=' + page : '' ));
// 检测是否支持
//监听事件
window.addEventListener('DOMContentLoaded', changeURL, false);
}catch(e){
alert('浏览器不支持,请使用支持html5的浏览器');
&div id=&content& style=&width:300height:100border:1px solid #999;&&第1页的内容&/div&
&div&&a id=&next& href=&?page=2&&下一页&/a&&/div&
&div style=&color: margin-top:30&&请使用支持html5的浏览器测试&/div&
&div&&a href=&http://www.qttc.net&&xxx&/a&&/div&
shuju.php代码:
echo json_encode(array('data'=&'第'.$_GET['page'].'内容'));
DEMO贴图:
没有点击之前
点击后,发起ajax请求page=2数据
ajax返回后通过pushState修改URL,请看截图地址栏已经是page=2,页面没有刷新,因为firebug控制台中的ajax请求记录还在
点击后退箭头,恢复上一页的数据
虽说这两个html5新加api能实现无刷新修改URL,但js毕竟是前端,为了安全是不能跨域的。比如本例中的demo域是在www.qttc.net下,不能修改到域下。有不少人说这个特性解决了ajax局部刷新区域不容易被蜘蛛人抓取的问题,本人没有亲自验证,但却有可行之势,感兴趣的童鞋可以尝试下。
文字链接:《》
文章地址:
除非标注,所有博文均为原创,转载请加文字链接注明来源
需求来了,我们老大需要我获取URL做一个chrome的 extension,看了你的博客受益匪浅,但有了域的限制(比如:我亲试了在本地的html,发现并不好用),还望多多指教,感恩!
在网站上好用但在本地不好用的原因:是不是由于打开的html文件是本地文件,而不是网络url所致--接触web编程阶
这是基于HTTP协议的API,你本地打开是file:///,是文件协议
对了,顺便添加俺为友情链接呗
忙碌的松鼠
老大,给你博客添加个回到顶部功能吧,这么长,还得滑上去。
可以山寨个支付宝。然后无刷新更改URL为
是可以这样么?
按 CTRL+ Home 回到顶部呀
终于写了一篇哈,我那次咨询过你之后,在网上查阅了很多资料。发现现在的这些效果,有些使用 # 来实现无刷新,这个我在 IE7 等早期浏览器下测试,也是支持的。例如这个
网站。阮一峰写过一篇简要介绍的文章:/blog/2011/03/url_hash.html。
Recommendation

我要回帖

更多关于 js获取ajax请求的url 的文章

 

随机推荐