我正在尝试与第三方API通信。我用python编写了API。我想使用用户表单和文本框从Wix网页更新数据库中的名称列。数据库更新和所有端点都可以使用邮递员进行响应以进行测试。我认为问题出在Wix端的JavaScript中。
我在以下Wix示例中对JavaScript进行了建模: https://support.wix.com/en/article/calling-server-side-code-from-the-front-end-with-web-modules
我有一个名为placeOrder的后端模块,存储在orderplaced.jsw中,该模块应该将变量“名称”发布到api。
import { fetch } from 'wix-fetch';
// wix-fetch is the API we provide to make https calls in the backend
export function placeOrder(name) {
return fetch("https://reliableeparts.pythonanywhere.com/user", {
method: 'post',
name: JSON.stringify({ name })
}).then(function (response) {
if (response.status >= 200 && response.status < 300){
console.log(JSON.stringify({ name }))
return response.text();}
console.log(Error(response.statusText))
return Error(response.statusText);}
);
}
前端模块等待按钮单击,并将文本框存储在名称变量中。
{
import {placeOrder} from 'backend/orderplaced.jsw';
export function button1_click(event, $w) {
placeOrder(
$w("#input1").value)
.then(function() {
console.log("Form submitted to backend.");
}
);
}
}
输出: 2 该代码似乎到达了后端。我认为问题出在我的placeOrder函数中,因为我对JavaScript不太熟悉。
答案 0 :(得分:1)
您的代码似乎合法。问题出在服务器上。当我尝试向该地址发送POST
请求时,我收到了500 Internal Server Error
。
您可以选中此curl
并自己测试服务:
curl -i -X POST -H "Content-Type:application/json" https://reliableeparts.pythonanywhere.com/user -d '{"name":"test123"}'
您可能缺少服务器期望的正确对象结构,或者缺少服务器POST
(或两者都有)的正确标头
确保您遵循该服务器允许的API