是否可以在两个域之间发出请求?
Is it possible to make request between two domains?
是否可以使用 JavaScript 在域 www.site.mySiteName.com
和 api.mySiteName.com
之间发出 xhr
请求?
我需要从我的 API 实时获取数据,但我不知道该怎么做。
让它成为可能(打开您的 API 到您的网页):
您可以在域之间进行 ajax 请求,但是,主机必须允许您的来源。
您需要将 header 附加到响应中(这需要在 API 上完成):
Access-Control-Allow-Origin: *
或类似的东西:
Access-Control-Allow-Origin: site.mySiteName.com
API 在技术上将响应任何来源,除非您另有说明而不管 header;但是,如果现在允许您的来源,浏览器会说请求失败。
此外,您应该知道,根据请求,您的 API 将必须支持预检 "OPTIONS" 请求
参见:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
How does Access-Control-Allow-Origin header work?
在javascript中实际提出请求:
您可以使用 jQueries "ajax" 发出请求:http://api.jquery.com/jquery.ajax/
简单获取请求:
$.ajax({
method: "get",
url: "test.html",
}).done(function(data) {
console.log('got data:' + data);
});
简单post请求:
$.ajax({
method: "post",
url: "test.html",
data: {somekey: 'somevalue'}
}).done(function(data) {
console.log('got data:' + data);
});
将响应格式设置为 JSON:
$.ajax({
method: "get",
url: "test.html",
dataType: "json"
}).done(function(data) {
console.log('got data:' + data);
});
注意(编辑): 您可以在本机中执行此操作 javascript;另一方面,使用 jQuery 或 AngularJS(一个完整的应用程序框架..)更简单并且添加了其他有用的工具。
是否可以使用 JavaScript 在域 www.site.mySiteName.com
和 api.mySiteName.com
之间发出 xhr
请求?
我需要从我的 API 实时获取数据,但我不知道该怎么做。
让它成为可能(打开您的 API 到您的网页):
您可以在域之间进行 ajax 请求,但是,主机必须允许您的来源。
您需要将 header 附加到响应中(这需要在 API 上完成):
Access-Control-Allow-Origin: *
或类似的东西:
Access-Control-Allow-Origin: site.mySiteName.com
API 在技术上将响应任何来源,除非您另有说明而不管 header;但是,如果现在允许您的来源,浏览器会说请求失败。
此外,您应该知道,根据请求,您的 API 将必须支持预检 "OPTIONS" 请求
参见:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
How does Access-Control-Allow-Origin header work?
在javascript中实际提出请求:
您可以使用 jQueries "ajax" 发出请求:http://api.jquery.com/jquery.ajax/
简单获取请求:
$.ajax({
method: "get",
url: "test.html",
}).done(function(data) {
console.log('got data:' + data);
});
简单post请求:
$.ajax({
method: "post",
url: "test.html",
data: {somekey: 'somevalue'}
}).done(function(data) {
console.log('got data:' + data);
});
将响应格式设置为 JSON:
$.ajax({
method: "get",
url: "test.html",
dataType: "json"
}).done(function(data) {
console.log('got data:' + data);
});
注意(编辑): 您可以在本机中执行此操作 javascript;另一方面,使用 jQuery 或 AngularJS(一个完整的应用程序框架..)更简单并且添加了其他有用的工具。