बस डार्ट के साथ झुकाव शुरू कर दिया और मैंने एक सरल एचटीपी सर्वर और एक ग्राहक लिखने का फैसला किया। मेरे सर्वर कोड:डार्ट के साथ सीओआरएस, मैं इसे काम करने के लिए कैसे प्राप्त करूं?
#import("dart:io");
final HOST = "127.0.0.1";
final PORT = 8080;
final LOG_REQUESTS = true;
void main() {
HttpServer server = new HttpServer();
server.addRequestHandler((HttpRequest request) => true, requestReceivedHandler);
server.listen(HOST, PORT);
print("Server is running on ${PORT}.");
}
void requestReceivedHandler(HttpRequest request, HttpResponse response) {
var pathname = request.uri;
var apiresponse="";
if (LOG_REQUESTS) {
print("Request: ${request.method} ${pathname}");
}
if(pathname == '/api'){
response.headers.set(HttpHeaders.CONTENT_TYPE, "text/plain; charset=UTF-8");
response.headers.add("Access-Control-Allow-Methods", "POST, OPTIONS, GET");
response.headers.add("Access-Control-Allow-Origin", "*");
response.headers.add('Access-Control-Allow-Headers', '*');
print('welcome to the good life');
response.outputStream.writeString("API Call");
response.outputStream.close();
}
}
मेरे क्लाइंट कोड:
#import('dart:html');
#import('dart:json');
class dartjson {
dartjson() {
}
void run() {
write("Hello World!");
}
void fetchFeed(){
XMLHttpRequest xhr = new XMLHttpRequest();
var url = "http://127.0.0.1:8080/api";
xhr.open("GET", url, true);
xhr.setRequestHeader('Content-Type', 'text/plain');
//xhr.setRequestHeader('Access-Control-Request-Headers', 'http://127.0.0.1:3030');
xhr.send();
print(xhr.responseText);
document.query('#status').innerHTML = xhr.responseText;
}
void main() {
new dartjson().fetchFeed();
}
मैं त्रुटि प्राप्त हो रही:
XMLHttpRequest cannot load http://127.0.0.1:8080/api. Origin
http://127.0.0.1:3030 is not allowed by Access-Control-Allow-Origin.
क्या मुझे लगता है मैं गलत कर रहा हूँ?
क्या आपने उन 2 लिंक को देखा है? http://blog.sethladd.com/2012/03/jsonp-with-dart.html https://groups.google.com/a/dartlang.org/group/misc/browse_thread/thread/e93a2b0e205bd5d1/605a7ef152f96e7b?lnk = जीएसटी और क्यू = सीओआरएस # 605a7ef152f96e7b – Gero
'*' पहुंच-नियंत्रण-अनुमति-उत्पत्ति 'को छोड़कर किसी भी चीज़ के लिए मान्य मान नहीं है; और यदि अनुरोध प्रीफलाइट किया गया है तो यह मूल फ़ील्ड के लिए भी मान्य नहीं है (यदि आप 'एक्सेस-कंट्रोल-अनुरोध-हेडर' लाइन को अनमोल करते हैं तो यह मामला है - हालांकि यह अधिक समझ में नहीं आता है, मान एक सूची होना चाहिए हेडर नाम)। – Tgr
मुझे सीओआरएस ने 'एक्सेस-कंट्रोल-ऑब्जेक्ट-ओरिजिन' संपत्ति के साथ काम करने के तरीके के साथ काम किया है। अन्य मूल्यों को सही करें और इसे ठीक काम करना चाहिए। – enyo