私はブックマークレットを書いています。ブックマークレットは、サイトから写真やビデオを取り込み、AJAX経由でサーバーに送信する必要があります。問題は、クロスドメインAJAX要求である - 私は、エラーを持っている:外部サイトからAJAX経由でサーバーにデータを送信する方法は?
XMLHttpRequest cannot load http://mysite.com/community/bookmarklet/ . Origin http://www.some-nice-site.com is not allowed by Access-Control-Allow-Origin.
第三部構成のサイトから私のサーバーへのデータ送信を解決する方法は?
注:私は平面のジャバスクリプトのみを使用します。これは開発の規定です。
私のコード:
function getXmlHttp(){
var xmlhttp;
if (typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
} else {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
};
return xmlhttp;
};
function vote(data) {
var req = getXmlHttp();
req.onready = function() {
if (req.readyState == 4 & req.status == 200) {
alert('OK');
}
}
req.open('GET', 'http://mydomain.com/community/bookmarklet/');
req.send(JSON.stringify(data()));
};
function dataProcessing(){
//some processing
return data;
};
// I tried it, but not deeply understand.
function JSONPresponse(){
document.getElementById('popup_body').innerHTML = 'done!';
};
(function(){
function pasteIt(){
// this function is builds the form, which get data for dispatch to my server.
};
pasteIt();
document.getElementById('my_button').addEventListener('click', function() {vote(dataProcessing)}, false);
}());
隠された 'iframe'を使い、' string'のテキストを 'src' URLに追加するのが難しいかもしれません。ちょっと言ってください。 –
あなたはこれに[JSONP](http://en.wikipedia.org/wiki/JSONP)を使わなければなりません。 – jabclab
@jakeclarkson、うん - これです! – I159