使用 jQuery 1.5 以 jsonp 形式发送请求,将响应解释为文本

2024-01-07

简短的问题:有没有办法向服务器发出 jsonp 请求,捕获请求,但不将其解析为 javascript?我在 jQuery 1.5 中使用 dataType: "jsonp text" 但它不起作用。

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

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

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

提前致谢!

Code:

ajax_url = 'https://somesite/?searchTerm='+query+'&searchType=lastname';
var jqxhr = $.ajax({type:"GET",
url: ajax_url,
dataType:"jsonp text",
callback: "whatever",
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 http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing)。如果您无法更改服务器端代码,那么您只有两种选择:

  1. 在您自己的服务器上创建一个代理来隧道响应(您的服务器端脚本发出实际请求并将其发送到浏览器):然后从客户端的角度应用同域,您将能够请求数据为 XML,
  2. 使用 flash 绕过浏览器的安全性(您可以使用flXHR http://flxhr.flensed.com/但现在看来有点过时了)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jQuery 1.5 以 jsonp 形式发送请求,将响应解释为文本 的相关文章

  • 搜索多维数组 JavaScript

    我有一个如下所示的数组 selected products 0 r1 7up 61 Albertsons selected products 1 r3 Arrowhead 78 Arrowhead selected products 2 r
  • Javascript 在没有 id 的情况下取消标记跨度

    是否可以找到并取消标记字符串中没有 id 的跨度 我有一个文本 其中有一堆跨度 其中一些有 id 另一些则没有 Input span Hi there span span This is a test span Output Hi ther
  • 使用 JavaScript 在日期中添加小时和分钟

    我正在根据世界各地的时区构建会议日历 我的问题是如何在 JavaScript 中从用户选择的日期中添加或减去时区 例如 在选择表单上 用户将从表单中选择日期 然后我将获取结果并转换为日期 如下所示 var ldSelectDate new
  • CodeIgniter 控制器 - JSON - AJAX

    我正在尝试通过 AJAX 使用 CodeIgniter 发送表单构建 并尝试使用 JSON 获取响应 但是 我只在打开开发人员选项卡时看到响应 我什至不确定这是否实际上是响应 因为它显示了两个 json 数据 它所显示的只是加载旋转器 然后
  • 使用 jQuery 清除 IMG

    我正在尝试从 a 中删除加载的图像 img 元素 但清除或删除 src 不会执行此操作 该怎么办 HTML img src https www google com images srpr logo3w png JQUERY img att
  • RegisterForEventValidation 只能在 Render 期间调用

    我有一个将从 jquery ajax 调用的 webmethod WebMethod public string TestMethod string param1 string param2 StringBuilder b new Stri
  • 如何重新加载 jquery dropkick 对象

    我使用一个简单的选择列表和 jquery dropkick 库来使其美观 现在我想在更改相应的选择元素后更改 dropkick 内容 出现了一个新选项 但只需调用 select dropkick 不起作用 而且好像不支持 只需从头开始重建那
  • 如何使用 JavaScript 中的值填充下拉列表?

    我在 Tridion CMS 扩展中的功能区工具栏按钮中添加了一个按钮 单击该按钮后 将显示一个弹出页面 其中包含两个下拉菜单 通过更改第一个下拉控件中的值 我应该填充第二个下拉控件的值 就我而言 我正在使用ASP drop down li
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • 如何让 jquery Tooltipster 插件适用于新创建的 DOM 元素?

    我正在使用 Tooltipster 插件http calebjacob com tooltipster http calebjacob com tooltipster 这很棒 但我已经动态生成了插入到 DOM 中的内容 工具提示程序似乎没有
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • IE 中的 jQuery .width(val) 错误 - 无效参数

    通过ajax加载内部div book table 后 我想调整正文的宽度以适应更大的内容 var new width parseInt book table css width 407 body width new width 在 FF 和
  • 如何将送货地址复制到帐单地址

    我想知道是否可以将送货地址复制到帐单地址 当用户单击与送货地址相同的复选框时 送货地址值将被复制到账单输入字段 我完成了大部分部分 但我不确定如何将选择菜单 状态 值复制到帐单地址 我真的很感谢任何帮助 My code document r
  • jquery:焦点到 div 不起作用

    ajax功能结束后 在成功消息中 我关注特定的 div 但这不起作用 我的代码在这里 j ajax url type POST data action press release page 0 do task do task id id m
  • XHR 不起作用,因为“Access-Control-Allow-Origin 不允许来源”

    我正在使用 Rails 3 开发一个 API 服务器 到目前为止 它非常方便 但我一直遇到错误 我不确定这是因为我的 Apache 设置还是 Rails 应用程序 当我尝试执行 HTTP DELETE 或 PUT 请求时http sampl
  • jQuery 文件上传预览图像

    我正在使用 jQuery 文件上传插件 http blueimp github io jQuery File Upload http blueimp github io jQuery File Upload 用于我的网站的图像上传 我已经看
  • jquery:$().animate() 不是函数

    我已经做了很多搜索 但无法找到我的问题的答案 所以这里是 我正在尝试创建一个滑出切换菜单本教程 http alijafarian com jquery horizontal slideout menu 我收到一个错误slideoutMenu
  • 使用 Fancybox2 从多张预览图片启动一个画廊

    我正在启动一个包含多张预览图片 链接 的画廊 第一个开始图库 下一个进入同一图库中的特定照片 但如果您选择 可以单击整个图库 将其视为一个已设置的书签 可将您带到一个较大图像库的不同点 我现在已经复制了这对我来说是如何工作的 尽管它是多余的
  • 仅在第一次访问页面时显示 jQuery 弹出窗口

    我是新来的jQuery http en wikipedia org wiki JQuery 我的网站上有一些需求 我想仅在用户到来时才第一次显示 jQuery div 弹出窗口 无需一次又一次地展示 我仍然在使用这个 但我不知道第二次如何隐
  • jQuery 验证:如何不显示错误?或者如何将错误显示为工具提示?

    我希望我的错误浮动在未验证的输入字段上方 左对齐 我怎样才能做到这一点 如果不能 我怎样才能关闭错误 我仍然希望字段能够验证 并在错误时突出显示 但不希望显示实际的错误消息 我似乎无法在 jQuery 文档中找到任何可以让我打开 关闭它们的

随机推荐

  • Django 使用 kwargs 进行反向操作

    比如说 在我的注册类的 post 方法中 如果用户已经注册 我想将用户重定向到登录页面 这很简单 class Register View def post self request Some code to check if the ema
  • XTS 的日期有不同的来源。使用 R 计算 beta

    我对 R 有点陌生 我想我的错误对于有经验的人来说是微不足道的 我正在尝试编写一个 R 程序来计算许多股票的贝塔值 股票代码读取自Input csv 数据是从yahoo下载的 然后 代码循环执行每只股票的 beta 计算 并输出总结回归的
  • UITextView 带有“完成”按钮*和*“返回”键?

    我在 iPhone 应用程序中使用 UITextView 进行多行文本输入 并且已将 返回 键设置为显示 完成 我还设置了返回键来禁用第一响应者状态 以便点击 完成 实际上退出 UITextView 但是 我还希望用户能够在 UITextV
  • 如何编写在框中绘制文本/字符串的测试用例?

    我正在矩形框架中绘制字符串 绳子拉得很完美 现在我需要使用sentesting 套件编写测试用例 我不知道应该从哪里开始 为了寻求帮助 我还看到了iPhone 示例计算器应用程序 http developer apple com IPhon
  • 未找到视图或其主视图,或者没有视图引擎支持搜索的位置

    错误如下 未找到视图 LoginRegister 或其主视图 或者没有视图引擎支持搜索的位置 搜索了以下位置 视图 MyAccount LoginRegister aspx 视图 MyAccount LoginRegister ascx 视
  • 当在 gnu 屏幕中使用 vim 或 less 时,退出 vim 或 less 会留下挥之不去的印记

    在我的新 Ubuntu 系统上 我启动一个屏幕会话并在 vim 中编辑文件或在 less 中查看它 退出后 屏幕不会自行重绘 而只是向上滚动以在我刚刚在 vim 或更少中查看的所有内容下显示命令行 我怎样才能改变这个 以便退出 vim 会让
  • jQuery:如何在两个闭合的 html 标签之间选择文本

    我正在尝试使用 jQuery 将介绍 帮助文本包装在 html 文档中 它不在任何标签内 而是在两个闭合的 html 标签之间 例如 请参阅随附的代码片段 第二个结束标签也可以是除 p var txtHelp jQuery b page t
  • Django 缓存错误..即使禁用缓存

    我有一个 Django 网站 其中出现了一个奇怪的错误 在网站上 他们可以添加 出版物 这基本上与不同名称的博客文章相同 当他们修改现有帖子时 事情会变得很奇怪 他们首先在管理员中修改它 当他们访问网站时 更改不可见 就像旧版本被缓存一样
  • 是否可以隐藏系统栏

    我创建了一个启动器 以便在内部应用程序中使用它 出于某些安全原因 我想隐藏系统栏 对参数的访问和对已安装应用程序的访问的排序 但我不知道该怎么做 将使用的平板电脑未root 你能帮我吗 您无法隐藏它 但可以禁用它 但主页除外 为此 您可以将
  • R 中的网页抓取,“...当前工作目录中不存在”错误

    我正在尝试使用 XML2 包从 ESPN com 中抓取一些表格 举例来说 我想将第 7 周的梦幻四分卫排名抓取到 R 中 其 URL 为 http www espn com fantasy football story page 16ra
  • 如果我推送到已删除的分支会发生什么?

    我有一个 git 分支 被gitlab合并删除了 现在 发现了一个错误 我想继续在这个分支上工作 我重命名了它 但它仍然跟踪已删除的分支 它不知道 gitlab 删除了该分支 现在我很好奇 在这种情况下我该怎么办 如果我按原样推进会发生什么
  • 在Java中编码base64并在C#中解码

    我必须将文件发送到我的 Web 服务 但 Web 服务假定该文件 字节数组 为 base64Binary 在编码之前 byteArrayFile 作为常规文件保存在磁盘上 我这样做只是为了测试 因此 在我的 Web 服务 Java 客户端中
  • Bootstrap 中每行超过 12 列

    我将在 bootstrap 3 2 0 中查看每行 12 列 并根据 bootstrap 和这个帖子 https stackoverflow com questions 23535499 bootstrap what will happen
  • 在 HTML 页面“到达”底部之前滚动它

    我有这个聊天话题 它当前所做的是 当它到达页面底部时 它会向上滚动 以便它始终位于页面底部 问题是 正如您在图像中看到的 它在到达页面底部之前隐藏在表单后面 因此 我需要重新定义页面底部的内容 我努力了 function scroll wi
  • scoped_session 中跨进程边界

    我正在使用 SQLAlchemy 和多处理 我还使用scoped session 因为它避免共享同一个会话 但我发现了一个错误及其解决方案 但我不明白为什么会发生这种情况 你可以在下面看到我的代码 db py engine create e
  • 使用 jira-python 进行基本身份验证

    我是 Python 新手 jira python 库新手 网络编程新手 尽管我在应用程序和集成编程以及数据库查询方面确实有相当多的经验 尽管已经有一段时间了 使用Python 2 7和请求1 0 3 我正在尝试使用这个库 http jira
  • 如何动态设置文本到TextView?

    我想在活动开始时显示连接的 ssid 和 IP 地址 它包含一个图像视图 用于标题 因为我没有使用操作栏 和 4 个文本视图 ssid 标签 ssid 值 ipaddr 标签和 ipaddr 值 我已经测试了获取 ssid 和 ipaddr
  • 为什么这个 Django 测试能够通过?

    单独调用send mail函数会因为主题中的换行符而导致BadHeaderError异常 我预计这个 test newline causes exception 也会失败 但事实并非如此 这是 Django 1 3 中的内容 有任何想法吗
  • 在 Typescript 的模块内使用 get/set 创建变量

    我想在模块内创建一个具有获取 设置属性的变量 我看到了一些在类中创建 get set 属性的工作示例 如下所示 class MyClass private view get View return this view set View va
  • 使用 jQuery 1.5 以 jsonp 形式发送请求,将响应解释为文本

    简短的问题 有没有办法向服务器发出 jsonp 请求 捕获请求 但不将其解析为 javascript 我在 jQuery 1 5 中使用 dataType jsonp text 但它不起作用 我正在尝试使用 jsonp 通过 AJAX 访问