Jquery post 関数を見てみましょう: http://api.jquery.com/jQuery.post/
また、URL とともにデータを送信したい場合は、get でも同様に実行できます。
www.someurl.com?dataAttr=someValue&dataOtherAttr=someOtherDataValue
これは、次のデータを含むポストの GET に相当します。
{
"dataAttr": "someValue",
"dataOtherAttr": "someOtherDataValue"
}
これは、サーバーに投稿する純粋な js です。スクリプトは非表示の iframe を作成し、指定されたパラメーターを使用して指定されたサーバーを呼び出します。サーバーは、クロス ドメイン ポリシーをサポートする必要があります。サーバーで CORS をサポートできない場合は、運が悪いです。
/**
*
* Makes a post to the specified url with the specified param - keyval
*/
makePost = function makePost(url, params){
var iframeId = 'iframeid';
var addParamsToForm = function (form, params){
var addParamToForm = function(form, paramName, paramValue){
var input = document.createElement('input');
input.hidden = 'hidden';
input.name = paramName;
input.value = paramValue;
form.appendChild(input);
}
for ( var prop in params ){
if ( params.hasOwnProperty(prop) ){
if ( params[prop] instanceof Array ){
for ( var i = 0; i < params[prop].length; i ++ ){
addParamToForm(form, prop, params[prop][i]);
}
} else {
addParamToForm(form, prop, params[prop]);
}
}
}
};
var iframe = document.getElementById(iframeId);
if ( iframe === null ){
iframe = document.createElement('iframe');
iframe.name = 'iframeName';
iframe.id = iframeId;
iframe.setAttribute("style", "width: 0; height: 0; border: none; display: none;");
}
var form = document.createElement('form');
form.action = url;
form.method = 'POST';
form.target = iframe.name;
addParamsToForm(form, params);
iframe.appendChild(form);
document.getElementsByTagName('body')[0].appendChild(iframe);
form.submit();
}
使用例:
makePost('yourserver', {'someAttr':'someAttrValue', 'someOtherAttr': 'someOtherAttrValue'});
またはjqueryバリアント:
$.ajax({
type: 'POST',
url: 'yourserver',
crossDomain: true,
data: {'someAttr':'someAttrValue', 'someOtherAttr': 'someOtherAttrValue'},
dataType: 'json',
success: function(responseData, textStatus, jqXHR) {
var value = responseData.someKey;
},
error: function (responseData, textStatus, errorThrown) {
alert('POST failed.');
}
});
CORS をサポートするようにサーバーを構成する方法のヒント:
http://enable-cors.org/server.html
これを見てください:
JavaScript を介してクロスドメイン POST リクエストを送信するにはどうすればよいですか?