首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设置条带支付网关时返回json数据时出错。未捕获(在promise中) SyntaxError:意外的标记<在JSON中的位置0

设置条带支付网关时返回json数据时出错。未捕获(在promise中) SyntaxError:意外的标记<在JSON中的位置0
EN

Stack Overflow用户
提问于 2020-08-29 20:31:29
回答 2查看 1.6K关注 0票数 0

所以我已经在这个问题上挣扎了几天,需要找到一个解决方案。我遵循了一个关于如何设置条形支付的教程,下面的代码是我遇到错误的地方:

代码语言:javascript
运行
复制
var buyBtn = document.getElementById('payButton');
var responseContainer = document.getElementById('paymentResponse');

// Create a Checkout Session with the selected product
var createCheckoutSession = function(stripe) {
  return fetch("stripe_charge.php", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      checkoutSession: 1,
    }),
  }).then(function(result) {
    return result.json(); // JSON PASSED FROM HERE
  });
};

// Handle any errors returned from Checkout
var handleResult = function(result) {
  if (result.error) {
    responseContainer.innerHTML = '<p>' + result.error.message + '</p>';
  }
  buyBtn.disabled = false;
  buyBtn.textContent = 'Buy Now';
};

// Specify Stripe publishable key to initialize Stripe.js
var stripe = Stripe('<?php echo STRIPE_PUBLISHABLE_KEY; ?>');

buyBtn.addEventListener("click", function(evt) {
  buyBtn.disabled = true;
  buyBtn.textContent = 'Please wait...';


  createCheckoutSession().then(function(data) { // TO HERE - ERROR IS HERE
    if (data.sessionId) {
      stripe.redirectToCheckout({
        sessionId: data.sessionId,
      }).then(handleResult);
    } else {
      handleResult(data);
    }
  });
});

所以你可以在上面看到我试图在哪里返回json,以及我在哪里接收它。我仔细检查了返回的值,如下所示:

json result being returned

下面是我得到的错误:

代码语言:javascript
运行
复制
checkout.php:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

根据我所看到的,似乎在data.json()的返回中的某个地方。数据正在被更改,以便稍后在代码中不被接受。如果有人能对此有所帮助,或者对情况有更多的了解,我将不胜感激。我已经查看了在线加载,但除了正在传递的HTML文件之外,似乎找不到任何其他内容。问题是,即使在查看调试时,我也不知道这是如何发生的。非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2020-08-30 12:29:43

有一个结果,是的,但它不是JSON。您的stripe_charge.php请求几乎肯定会返回一个HTML页面,而不是您期望的JSON。当您尝试return result.json()时发生错误。您需要检查网络响应并调试服务器代码。

查看此处:https://www.codeproject.com/Tips/1239019/Unexpected-token-in-JSON-at-position

票数 2
EN

Stack Overflow用户

发布于 2021-03-02 03:07:33

这可能是因为您已将代码放在自定义文件夹中。我只需在checkout.html中删除fetch("/create-checkout-session.php", {method: "POST",})中的"/“即可。

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

https://stackoverflow.com/questions/63647002

复制
相关文章

相似问题

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