我一直在遍历Stackoverflow和网络上的其他任何地方,试图找到我的问题的解决方案.. 我正在使用Javascript并尝试将一小部分JSON发布到我知道正在运行的API中的端点(我在Postman中手动完成了GET和POST)
这是我的问题.. 我想在我的程序中真的不想做“GET”我只想引用文件,甚至只是将它存储在一个小变量中。
例如,我的代码中有:
var OauthUpload = {
"objects": [
{
"name": "api",
"serviceID": 16,
"properties": {}
}
],
"version": "integration",
"environment": "redshift"
}
然后我试图在JS函数中引用它:
function ApiPostOauth (port) {
$.post(OauthUpload, "http://docker.dc.test.com:" + getActualPort(port) + "/rest/v1/oauth/import", runner);
}
但我没有快乐!我看到了一些不同的问题,但似乎没有一个适合我。
基本上我想要一种方法:
引用我自己的JSON作为变量,然后插入,这样我的函数“ApiPostOauth”在它运行之前插入了吗?
谢谢你们
史蒂夫
答案 0 :(得分:0)
我已经汇总了一个供你使用的例子。执行此代码时,服务器将返回发送的相同对象。因此,' OauthUpload`对象作为请求主体发送,服务器返回完全相同的对象。注意:如果在运行示例时未在输出面板中看到输出,则需要重新启动服务器(发表评论)。这是为了证明:
[编辑] - 在重新阅读您的问题后,您似乎想将“OauthUpload”对象传递给该函数。我已经更新了这个例子。
您调用jQuery post()
方法时出错。如注释中所示,前两个参数在调用post()
时相反。
由于你没有接受,我决定使用你的代码提供一个例子。由于我没有你的服务器,我为这个例子站了一台服务器。因此URL和端口将不同,但AJAX调用将是相同的。
请密切关注OauthUpload
对象。请注意,属性名称不再被"
包围。我删除了这些引号,因为它们似乎让您对JavaScript对象和JSON字符串感到困惑(无论您在Web上读到什么,都没有JSON对象 - JSON是一种字符串格式。)
接下来,查看我的示例中对$.post()
的调用与您的代码之间的差异。您将在该调用中看到URL首先出现。
let url = "//SimpleCORSEnabledServer--randycasburn.repl.co/rest/v1/oauth/import";
let OauthUpload = {
objects: [{
name: "api",
serviceID: 16,
properties: {}
}],
version: "integration",
environment: "redshift"
}
ApiPostOauth(OauthUpload);
function ApiPostOauth(data) {
$.post(url, data, runner)
}
function runner(data) {
document.querySelector('pre').textContent = JSON.stringify(data, null, 2);
}

<pre></pre>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;