【问题标题】:AJAX api PUT requestAJAX api PUT 请求
【发布时间】:2017-02-19 01:44:04
【问题描述】:

我离成功还近吗?我正在尝试使用此代码块是 jsfiddle 来使用对 API 的 PUT 请求,当使用具有相同 URL 和 XML 的 www.hurl.it 时,它成功了,(哇哦!)但是当我使用此代码尝试它时,我有没有这样的运气。

选择“RUN”是 jsfiddle 不会产生任何结果,因为除了页面闪烁之外什么都没有发生。

var url = 'https://api.example.com/v1.svc/results/modules/[moduleID]?apikey=[apikey]&source=[source]'

var xmldata = '<ModuleResult><CourseId>JJxblllJXcw1</CourseId><UserId>XaWpNO10m-M1</UserId><Score>100</Score> <Completed>false</Completed><UpdatedAt>2030-04-30T15:36:30</UpdatedAt><Note>JIL</Note></ModuleResult>'

$.ajax({
  url: url,
  type: 'PUT',
  contentType: 'application/XML',
  data: xmldata,
  success: function(data) {
    alert('Load was performed.');
  }
});

任何意见将不胜感激!

【问题讨论】:

  • 定义错误回调并检查错误。
  • 你在控制台看到了什么?

标签: javascript jquery ajax rest api


【解决方案1】:

Cross Origin 正在完成呼叫墙,下面显示的简单代理前置过滤器解决了我的问题。

$.ajaxPrefilter( function (options) {
  if (options.crossDomain && jQuery.support.cors) {
    var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');
    options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;
  }
});

注意:
公共代理并不以极其安全着称,任何控制代理的人都可以看到您通过它推送的所有数据,因此如果使用公共代理,请确保数据不敏感。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-07
    • 2017-08-25
    • 1970-01-01
    • 2016-01-06
    • 2017-08-10
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    相关资源
    最近更新 更多