我的主题片段中有以下代码。它由我商店中的测试页面调用,而不是应用程序。据我所知,我不需要采取任何授权步骤。该代码返回403错误。我无法弄清楚原因。
$(document).ready(function () {
$("#process-all-products").click(function(e) {
e.preventDefault();
var resultDiv = $("#resultDivContainer");
var collection_id;
var toAdd = new Array();
for(i=0; i < length; i++){
toAdd.push({
variant_id: $("#variant-"+i).val(),
quantity_id: $("#quantity-"+i).val() || 0
});
}
function createCollection(){
var params = {
type: 'POST',
url: '/admin/custom_collections.json',
data: { "custom_collection": { "title": "my_collection_title" } },
dataType: 'json',
success: function (response) {
switch (response) {
case true:
collection_id = response.id;
console.log("collection_id [" + collection_id + "]");
break;
default:
resultDiv.html(response);
}
},
error: function (xhr, ajaxOptions, thrownError) {
console.log("create collection failed!");
alert(xhr.status);
alert(thrownError);
}
};
$.ajax(params);
};
createCollection();
});
});
</script>
答案 0 :(得分:1)
&#34; Web服务器可以返回403 Forbidden HTTP状态代码,以响应客户端对网页或资源的请求 表示可以访问服务器并理解请求, 但拒绝采取任何进一步的行动&#34;
以4 **开头的所有HTTP请求都与服务器端问题有关。 如果是403,则表示您未获得授权。
您必须为您的请求提供身份验证参数,如下所示:
希望这有帮助,因为从你的代码我不能得到任何其他答案
答案 1 :(得分:1)
你真的不想做你试图做的事情。基础知识在这里工作。在Shopify商店中,您是面向公众的以客户为中心的HTTP世界的一部分。要随时调用/ admin端点,需要进行身份验证(登录到商店)或通过经过身份验证的API调用。
进行经过身份验证的API调用的唯一方法是使用身份验证令牌。因此,如果您没有以管理员身份登录并且想要使用Javascript进行API调用,那么您的API令牌将对公众可见,然后他们可以根据令牌安全设置立即按照您的商店进行操作,包括如果他们愿意,可能会把它变成一个同性恋商场。
制作应用程序。用正确的工具完成你的工作。