JQuery ajax 使用 POST 从启用 CORS 的服务器获取图像/png

2024-03-26

我正在编写 HTML5/Backbone/Phonegap 应用程序Github 仓库 https://github.com/marfnk/sosmobileclient/它使用 52n 的 SensorObservationService REST API(v1 API 文档 http://sensorweb.demo.52north.org/sensorwebclient-webapp-stable/api-doc/index.html#timeseries)。 每个 GET 请求都工作正常 - 但现在我想下载 POST 请求后生成的图片。

但服务器响应状态为 400:

statusCode":400,"hints":["Check the message which has been sent to the server. Probably it is not valid."],"reason":"Bad Request","developerMessage":"Could not read JSON...

这是我的 AJAX 调用:

var body = {
    "base64":true,
    "legend":false,
    "timespan":"2013-10-30T00:00:00Z/2013-10-30T23:59:59Z",
    "width":482,
    "height":568,
    "language":"en",
    "grid":false,
    "styleOptions": {
        "ts_32e1174948e46f2e46fe597eb40b3557": {
            "chartType": "line",
            "properties": {
                "color": "#b45e87",
                "lineType":"solid",
                "width":1
            }
        }
    }
};
$.support.cors = true;

this.xhr = $.ajax({
     crossDomain: true,
     type: "POST",
     url:"http://sensorweb.demo.52north.org/sensorwebclient-webapp-stable/api/v1/timeseries/getData",
     processData: false,
     dataType: "json",
     accept: "application/json",
     contentType:  "application/json; charset=utf-8",
     data: body
   }).done(function(data) {
   }).fail(function(xhr, textStatus) {
   }).always(function() {
   });

这是我的fiddle http://jsfiddle.net/mD2Pn/5/- 如果我尝试使用 POSTMAN 进行相同的 POST 调用,服务器会按照他应该做的那样进行操作。

RESTClient-Screenshot Screenshot with working Call in RESTClient

我的通话有什么问题吗?


这是 52n API 中的一个错误,感谢 52n,现已修复。 这是解决方案:

$.support.cors = true;
this.xhr = $.ajax({
    crossDomain: true,
    type: "POST",
    url: "http://sensorweb.demo.52north.org/sensorwebclient-webapp-stable/api/v1/timeseries/getData",
    headers: {
        "accept": "image/png",
            "content-Type": "application/json",
    },
    data: JSON.stringify(body)
}).done(function (data) {
    $('#output').html('<img src="data:image/png;base64,' + data + '" />');
});

-> JSFiddle http://jsfiddle.net/mD2Pn/24/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQuery ajax 使用 POST 从启用 CORS 的服务器获取图像/png 的相关文章

  • Knockout JS 与 Ratchet 和 Push.js 配合得很好,直到我添加数据转换

    我正在使用 Ratchet js push js 库为移动 Web 应用程序创建 UI 在这个库中 链接是通过将要加载的文件 推送 到 content DOM 元素中而不是加载整个页面来处理的 但是 push js 在加载页面时不会加载它找
  • IFrame Resizer 未调整大小

    我正在这个页面上工作 http factor1hosting com dnaz wordpress certifications http factor1hosting com dnaz wordpress certifications 我
  • 尝试访问本地主机时如何避免跨源策略错误?

    我想要在外部服务器上上传一个静态网站 该网站将尝试从中获取 JSON 数据localhost 3000 服务器程序已在用户计算机上运行 我正在尝试使用 jQuery 来做到这一点 如下所示 getJSON http localhost 30
  • 如何在highcharts中设置动态数据

    我正在从 servlet 获取数据 我从 servlet 发送的 json 对象的 sysout 是 jsonArray bugzilla 20 redmind 14 现在我的java脚本是
  • jquery 切换兄弟元素的可见性

    我在一个页面上有几个 div 每个 div 都有一个标题 我可以单击该标题来切换相应 div 的可见性 div 设置为display none默认情况下 我用过 ids在每个 div 的点击功能中 但是因为我在同一页面上有多个 div 我想
  • jQuery Masonry 和媒体查询 - 重新加载 masonry

    我的网站设计有媒体查询 以覆盖不同大小的布局 我有砌体组织一堆全尺寸宽度的浮标 没问题 在移动宽度下 所有浮子都会浮起并堆叠在一起 所以我只需要在网站大小调整为平板电脑布局且 768px
  • jqGrid 的排序/过滤问题

    我正在使用jqGrid 4 5 3 版本我已经升级到免费 jqGrid 版本 4 13 6 升级后我面临以下问题 排序不适用于所有列 我想根据我设置的内容显示列大小autoResizable true and autoresizeOnLoa
  • 使用 jQuery 更改 Bootstrap 动画进度条动画持续时间

    我正在尝试更改 Twitter Bootstrap 动画进度条上使用的 CSS3 动画的持续时间 我想要的结果是使用 jQuery 减少动画的持续时间 以便获得更快的动画 我有以下 HTML 和 CSS 并使用了以下 jQuery HTML
  • 从 JQuery 中的元素获取点击处理程序

    如何获取对 JQuery 中元素的单击处理程序的引用 这是我正在尝试做的事情 存储点击处理程序 更改下一次单击的单击处理程序 恢复原始点击处理程序 var originalClick settings currentTarget click
  • 信号器 CORS 问题

    在我的服务器端 我使用带有信号器的 Web api 2 在我的客户端 我使用的是 angularjs 这是我启动信号连接时的 http 请求 gt GET gt http example com signalr negotiate clie
  • 使用 jQuery 删除 元素?

    我不想使用 style css 中的样式 因此我决定从 DOM 中删除 style css 这在 Firefox 和 IE8 中工作正常 但在 IE6 中不行 LINK href http www example com style css
  • 如何使用 DataTables jquery 插件按日期排序?

    我正在使用 datatables jquery 插件并希望按日期排序 我知道他们有一个插件 但我找不到从哪里实际下载它 http datatables net plug ins sorting http datatables net plu
  • Jquery ui 自动完成多个输入字段和 ajax 结果

    我正在尝试做其他几个人在堆栈上已经完成的事情 我已经尝试了所有可用的示例 但似乎无法使其工作 我已经复制了工作示例并反映了与我的情况相匹配的更改 但仍然没有 我使用的 HTML 看起来像这样 tr td a span class icon
  • 当用户输入时将输入值转换为货币格式

    我无法将输入值转换为货币格式 我想在用户键入数字 5 000 00 125 000 00 时自动添加千位和小数分隔符 这是我的代码 input CurrencyInput on blur focus keyup function this
  • Twitter Bootstrap 2 模式表单对话框

    我有以下对话框 div class modal div class modal header a class close a h3 Add Tags h3 div div class modal body div div
  • jquery 可以操作用 DOM 创建的临时文档吗?

    我想要实现的目标是通过传递一个大的 html 字符串来操作使用 jquery 使用 DOM 创建的文档 考虑以下示例 var doctype document implementation createDocumentType html v
  • jQuery Draggable + Sortable - 如何在两个可滚动列表之间拖放

    我想要两个列表 可用项目和选定项目 其中可用项目通过拖放分配给选定项目 我要求所选项目可排序 但不要求可用项目可排序 挑战在于这两个列表都可能包含大量项目 因此需要可滚动 这是我迄今为止的 jQuery
  • 仅在第一次使用 localStorage 加载网站时显示 DIV

    我正在尝试完成这项工作 但我遇到了一些问题 就像标题所说 我希望仅在第一次加载网站时显示 DIV 我知道如何使用 PHP 和 Cookie 但我想要使用 localStorage 函数 这是我的代码 div div document rea
  • 选择 Jquery 中的所有空文本字段

    如何找到所有具有空值的文本字段 text value 给出 JavaScript 错误 我知道我能做到 text 迭代并返回所有字段 this val 我正在寻找一种更干净的方法并使用 JQuery 1 3 1 如果该元素在页面加载时最初具
  • 当用户滚动经过页面的特定部分时,jQuery 触发操作

    大家好 我需要一个 jQuery 操作来在用户滚动经过页面上的某些位置时触发 这对于 jQuery 来说是可能的吗 我查看了 jQuery API 中的 scroll 我认为这不是我需要的 每次用户滚动时它都会触发 但我需要它在用户经过某个

随机推荐