我正在为shopify管理员创建嵌入式应用程序,我的问题是,当我的应用程序调用script_tag.json时,它说“跨域读取阻止(CORB)阻止了跨域响应” 以下是我使用ajax进行发布请求的代码
$.ajax({
method:"post",
url:'https://<%=@shop%>/admin/script_tags.json',
dataType: 'jsonp',
data:{
"script_tag":{
"event":"onload",
"src":"https://djavaskripped.org/fancy.js"
}
},
success:function(result){
console.log(result);
}
});
我的代码有什么问题吗?此ajax请求是从iframe发出的。
答案 0 :(得分:3)
对/admin
API的调用需要从服务器端代码进行。 Ajax在这里不是一个很好的选择,因为您不想在源代码中公开您的访问令牌。
修改: 这是带有cURL扩展名的PHP示例:
$ch = curl_init('https://5391.myshopify.com/admin/script_tags.json');
$script_tag = array('script_tag' =>
array(
'event' => 'onload',
'src' => 'https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js'
));
$headers = array(
'X-Shopify-Access-Token: yourtoken',
'Content-Type: application/json'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($script_tag));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);