我想在用户点击按钮发布带有ajax调用的网站时启动一个函数,我们很难纠正或修复这个错误(没有'Access-Control-Allow-Origin')。
尝试这个解决方案:我们应该将AJAX调用发送回您自己的服务器/php文件。然后,该PHP文件应该将该API调用直接发送回Duda。流程应该是:
function publish_site() {
var site_name = $(".site_name").val();
var url = 'https://mywebsite.com/home/site/'+site_name;
$.ajax({
type:'POST',
data:{site_name:$(".site_name").val()},//Get Account Information
dataType:'jsonp',
url:'publish-site.php',
complete: function(jqXHR, textStatus) {
$('#publish-btn').toggleClass("btn-primary"); // Revert back to default primary
$("#publish-btn").html("Publish"); // Change text of button
$('.url-here').append('<a href='+url+'>Click here to redirect</a>');
console.log("Completed: "+textStatus);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("Error: "+textStatus+" "+errorThrown);
},
success: function(data, textStatus, jqXHR) {
console.log("Success: "+textStatus);
},
});//ajax end
}//function publish_site end
$(document).ready(function(){
$("#publish-btn").click(function(e){
$("#publish-btn").toggleClass("btn-primary"); // Switch to default grey
$("#publish-btn").html("Publishing"); // Change text of button
publish_site();
});
});
</script>
如果你在本地服务器上尝试这个代码,那么你应该下载这个Google chrome扩展并启用它
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en或
如果它在你的服务器上,那么请把这个链接放在你的PHP文件
<?php
header("Access-Control-Allow-Origin: *");
如果您需要更多信息,请打开此链接
http://enable-cors.org/server.html