У меня есть сайт, созданный с помощью Gatsby. На одной из страниц есть форма, и она должна отправляться в конечную точку, которая не поддерживает CORS, но поддерживает JSONP.
Я написал такой обработчик событий, используя jsonp :
const handleSumbit = async event => {
event.preventDefault()
jsonp(
"https://go.pardot.com/form/id/code/",
{
timeout: 10000,
params: {
firstname: "fname",
lastname: "lname",
email: "an@email.com",
company: "company",
},
},
(err, data) => {
console.log({ err }, { data })
}
)
}
На основе этой публикации я создал на своем сайте 2 файла stati c с именами error.json
и success.json
. Я пробовал содержимое, как это в обоих:
cb({"status":"succcess"})
и просто
{"status":"success"}
Я всегда получаю сообщение об ошибке в консоли, говорящее о тайм-ауте запроса, и если я завершаю результат jsonpCb()
Я также получаю поговорку Uncaught ReferenceError: jsonpCb is not defined
. Я предполагаю, что это наполовину работает, потому что он пытается запустить эту функцию, и данные формы сохраняются. В моем компоненте React я создал функцию с именем jsonpCb, которая выглядит так:
const jsonpCb = data => {
console.log("fromJsonCb", { data })
}
Но я чувствую, что это не доступно для результата из-за способа, которым React упаковывает вещи.
Кто-нибудь знает как я могу получить результат, возвращаемый вызовом JSONP?