Json   发布时间:2022-04-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了以jsonp发送请求,使用jQuery 1.5将响应解释为文本大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
简短的问题:有没有办法向服务器发出jsonp请求,捕获请求,但不能将其解析为 javascript?我在jQuery 1.5中使用dataType:“jsonp text”但它无法正常工作.

我正在尝试使用jsonp通过AJAX访问跨域URl.问题是另一个域(我大学的目录列表)很老,我怀疑服务器是否支持jsonp.

>在Firefox中,我收到“XML标记名称不匹配(预期的Meta)”错误.在chrome中我得到一个“Uncaught SyntaxError Unexpected token<”两者都指向与我的AJAX请求相对应的文件.错误回调中的错误字符串是“parserError”.
>我无法进行正常的AJAX调用 – 当我将数据类型更改为“text”或将其全部删除时,另一个域会抱怨用户未经过身份验证并重定向登录@L_607_19@ – 即使我已经已登录浏览器端.当dataType是jsonp时,不会发生这种情况.
>我知道服务器需要支持JSONP,我认为不行,但是当我将dataType更改为JSONP时,我可以看到响应@L_607_19@资源显示在Chrome和Firefox中 – 因此服务器实际发送响应到浏览器(一个静态HTML网页的一些java脚本) – 它包含我想要获取的数据.
>问题是jQuery试图将响应解析为Javascript,并且失败(因为它不是javascript).所以数据最终会在浏览器中出现 – 我只需要访问它!
>使用dataType:“jsonp text”应该指示发送jsonp请求并将响应解释为文本没有区别 – 仍然是解析错误.

我想要的是:一种从jsonp请求以纯文本形式访问响应的方法.或者,如果我可以从失败的jsonp请求访问原始响应 – 这也可以.

提前致谢!

码:

ajax_url = 'https://somesite/?searchTerm='+query+'&searchType=lastname';
var jqxhr = $.ajax({type:"GET",url: ajax_url,dataType:"jsonp text",callBACk: "@R_801_10112@ever",success:function(responseData) {
   $('div#content').text( responseData.slice(0,100) );
   dbg(responseData.slice(0,100));
}})
.success(function() { alert("success"); })
.error(function(obj,errStr) { alert("error"); dbg("error: " + errStr + "test: " + test.responseText + this.responseTxt);})
.complete(function() { alert("complete"); });

解决方法

你想要实现的目标是行不通的:只有当服务器在javascript函数调用中正确嵌入响应时,才能使用jsonp.

即使服务器确实将文件发送到浏览器,由于安全限制,您将无法访问它:您所能做的就是将所述数据作为脚本执行(使用脚本标记)或将其用作样式表(使用链接标记)但是,如果它来自另一个域,您将永远无法检查原始文本中的响应.

我想你试图直接将数据作为xml获取并且它失败了(意味着该站点不支持CORS).如果您无法更改服务器端代码,那么您只有两种选择:

>在您自己的服务器上创建一个隧道响应的代理(您的服务器端脚本发出实际请求并将其发送到浏览器):然后从客户端的角度应用相同域,您将能够请求数据为XML,
>使用闪存来绕过浏览器的安全性(你可以使用flXHR,但现在似乎有点过时).

大佬总结

以上是大佬教程为你收集整理的以jsonp发送请求,使用jQuery 1.5将响应解释为文本全部内容,希望文章能够帮你解决以jsonp发送请求,使用jQuery 1.5将响应解释为文本所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。