有一个(hack)解决方案我已经做过很多次了,你将能够使用 JsonP 发布。(您将能够发布表单,大于 2000 个字符,您可以通过 GET 使用)
客户端应用程序 Javascript
$.ajax({
type: "POST", // you request will be a post request
data: postData, // javascript object with all my params
url: COMAPIURL, // my backoffice comunication api url
dataType: "jsonp", // datatype can be json or jsonp
success: function(result){
console.dir(result);
}
});
Java:
response.addHeader( "Access-Control-Allow-Origin", "*" ); // open your api to any client
response.addHeader( "Access-Control-Allow-Methods", "POST" ); // a allow post
response.addHeader( "Access-Control-Max-Age", "1000" ); // time from request to response before timeout
PHP:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');
这样做,您正在向任何发布请求打开您的服务器,您应该通过提供 ident 或其他东西来重新保护它。
使用这个方法,你也可以将请求类型从 jsonp 改为 json,都可以,只要设置正确的响应内容类型
jsonp
response.setContentType( "text/javascript; charset=utf-8" );
json
response.setContentType( "application/json; charset=utf-8" );
请注意,您的服务器将不再遵守 SOP(同源政策),但谁在乎呢?