【问题标题】:CORS policy error in Fast2sms.com API with Javascript [duplicate]使用 Javascript 的 Fast2sms.com API 中的 CORS 策略错误 [重复]
【发布时间】:2021-08-08 08:52:35
【问题描述】:

我有以下 API 和用于 fast2sms.com 的 Javscript API:

function sendOtp() {
    var settings = {
            "async": true,
            "crossDomain": true,
            "url": "https://www.fast2sms.com/dev/bulkV2",
            "method": "POST",
            "headers": {
                "authorization": "APICodeOfMyAccount",
                "Content-Type":"application/json",
                "accept": "*/*",
          "cache-control": "no-cache",
            },
            "data": {
                "route": "v3",
                "sender_id" : "TXTIND", 
                "language" : "english",
                'flash':0,
                "message": 'Abccompany.com: '+Math.floor(100000 + Math.random() * 900000)+' is your OTP.' ,
                "numbers": $('#sendOtpForm input[name="mobileNumber"]').val()
            }
        }
    
        $.ajax(settings).done(function (response) {
            console.log(response);
        });

我在按钮单击时调用了 sendOtp 函数,但它不起作用。如果我根据API文档Fast2sms.com使用PHP使用API​​,那么短信发送成功。

但是,如果我使用带有 Javascript 的 API,则会显示 CORS 策略错误:

为什么Php 工作如此轻松,而Javscript API 却造成了太多麻烦?任何帮助将不胜感激。

【问题讨论】:

  • 似乎 API 不允许 authorization 标头 - 它与 PHP 一起使用的原因是因为它不会从服务器跨源
  • 您可以阅读文档。不管他们写了什么,我都写了。文档提供的相同 PHP 代码有效,但为什么相同的 Javascript 代码无效,为什么?
  • 它在 PHP 中工作,因为 PHP 在服务器上运行并且不受跨源保护 - 虽然该 API 似乎发送了一些 CORS 响应,但它似乎并不打算从浏览器 - 也许这样您就不会将您的授权密钥暴露给互联网?
  • 你说我可以阅读文档......好吧,如果你真的链接到一些我可以,但你的文档链接是失败的
  • 我看到你已经完成了与他们的示例类似的代码 - 如果它不起作用,那是因为 fast2sms.com 不知道如何正确允许 CORS - 但是,你已经触发了一个 pre -flight 通过添加示例代码中不存在的标头...删除您添加的两个未出现在文档中的标头

标签: javascript sms-gateway


【解决方案1】:

我尝试了 GET 方法。 GET 方法工作正常。 POST 方法不起作用。我现在将使用 GET 方法

【讨论】:

    猜你喜欢
    • 2020-02-10
    • 2019-10-16
    • 2021-07-31
    • 2023-03-13
    • 2021-11-14
    • 2021-07-27
    • 2020-11-22
    • 1970-01-01
    • 2020-01-30
    相关资源
    最近更新 更多