localhost:4502ポートからAPIにデータを送信しようとしています。 POSTMANを使用してこのAPIにデータをポストしようとすると、基本認証キーを提供することでバックエンドにデータが追加されました。同じことをAjax Jqueryの呼び出しで実装しようとしていますが、CORSエラーが発生しています。最初にjqueryでデータを投稿しようとしていますが、ここで私が追加できるものを手伝ってください。私はユーザー名とパスワードを空白のままにすることができる基本認証のためのAPIキーを持っています。Jquery AJAX:要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#Save").click(function(){
var person = new Object();
person.Name = $('#Name').val();
person.EmailAddress = $('#EmailAddress').val();
person.CustomFields = [0];
person.CustomFields[0].Key = "[Country]";
person.CustomFields[0].Value = $('#Country').val();;
$.ajax({
url: 'https://api.createsend.com/api/v3.1/subscribers/7c7a6087b0e450ad72b38be83098e271.json',
type: 'POST',
dataType: 'json',
data:person,
success: function(data,textStatus,xhr){
console.log(data);
},
error: function(xhr,textStatus,errorThrown){
console.log('Error Something');
},
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic OTdlMjVmNWJiMTdjNzI2MzVjOGU3NjlhOTI3ZTA3M2Q5MWZmMTA3ZDM2YTZkOWE5Og==");
}
});
});
});
</script>
あなたがしようとしているのは、AJAXを通じてAPIにアクセスすることです。これは可能ではありません(理論的にはそうですが、私はそこに入るつもりはありません)。 apiにHTTPリクエストを行うには、サーバ言語(PHP、Node.jsなど)を使用する必要があります。そこから、あなたが望むようにデータを取り出して使用することができます。 – UghThatGuyAgain
クロスドメインAJAXリクエストの[** JSONP **](https://en.wikipedia.org/wiki/JSONP)を探しています。 –
@UghThatGuyAgainお返事ありがとうございます。だからあなたは、phpやnode.jsのように同じ呼び出しを書く必要があるのですか? –