首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我是否需要从clickatell购买订阅包,以便CORS不会阻止我与我的clickatell http api的联系?

我是否需要从clickatell购买订阅包,以便CORS不会阻止我与我的clickatell http api的联系?
EN

Stack Overflow用户
提问于 2019-06-12 08:11:17
回答 1查看 0关注 0票数 0

我使用ajax编写了jquery代码,以尝试与clickatell http api进行通信。我在过去使用这种与api通信的方法取得了成功,但出于某种原因,无论我尝试做什么,我都无法避免在尝试与clickatells apis通信时出错。

请注意:我还没有购买订阅包,也没有发出号码(来自clickatell)来发送短信。我还没有购买订阅套餐,因为我想知道在花钱之前我能够与clickatell apis进行有效沟通。以下问题的解决方案是简单地购买订阅包吗?可能是因为CORS阻止了我与clickatell apis通信的能力,直到我订阅了他们的一个软件包?

到目前为止,使用clickatell http api,我已经尝试在发送ajax调用(代码1)之前设置我的请求调用的标头,并且导致“来自原点'null'已被CORS策略阻止”错误。我可以错误地设置标题吗?

代码1

代码语言:javascript
复制
var xhr = new XMLHttpRequest();
  xhr.open("GET","https://api.clickatell.com/http/sendmsg?user=**********&password=**********&api_id=**********&to=11111111111&from=12345678910&mo=1&text=example", true);
  xhr.setRequestHeader("Access-Control-Allow-Origin","*");
  xhr.onreadystatechange = function(){
      if (xhr.readyState == 4 && xhr.status == 200) {
          console.log('success');
      }
  };
  xhr.send();

我也尝试使用'jsonp'(代码2),但这会导致“未捕获的SyntaxError:无效或意外的令牌”错误。我从api收到的数据不是json数据,这就是为什么这个方法可能不起作用但我找不到强制api返回json数据的方法。有没有办法解决这个问题?

代码2

代码语言:javascript
复制
$.ajax({
    type: "POST",
    crossDomain: true,
    header: {
      "Accept": "application/json"
    },
    dataType: "jsonp",
    url: "https://api.clickatell.com/http/sendmsg?user=**********&password=**********&api_id=**********&to=11111111111&from=12345678910&mo=1&text=example"
  });

我也试过使用其余的api,但我也会从这些尝试中得到相同的错误。

只需购买订阅套餐即可快速解决我的所有问题?

EN

回答 1

Stack Overflow用户

发布于 2019-06-12 17:41:39

Access-Control-Allow-Origin是一个响应头,它不能在请求上设置。

由于clickatell的API需要URL中的用户名和密码,因此几乎肯定不会在浏览器端JavaScript中使用它。您将向您网站的每位访问者提供您的用户名和密码。

从服务器调用clickatell的API。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档