2017-08-13 9 views
5

मैं एंग कोर वेब एपीआई के साथ कोणीय 4 ऐप का उपयोग कर रहा हूं जिसे मैं विभिन्न बंदरगाहों के साथ लोकहोस्ट पर परीक्षण करता हूं। मेरी वेबएपी को विंडोज प्रमाणीकरण की आवश्यकता है (लॉगऑन उपयोगकर्ता नाम प्राप्त करने की आवश्यकता है)। जीईटी काम का उपयोग कर सभी कॉल, लेकिन दुर्भाग्यवश, मुझे काम पर POST नहीं मिल सकता है।एएसपीनेट कोर कॉरस जीईटी के साथ काम करता है लेकिन बुद्धिमान नहीं है

XMLHttpRequest http://localhost:495/api//upload लोड नहीं कर सकता:

 public void ConfigureServices(IServiceCollection services) 
    { 
     // Add framework services. 
     services.AddApplicationInsightsTelemetry(Configuration); 
     services.AddDbContext<CatalogContext>(options => 
      options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); 
     services.AddCors(options => 
     { 
      options.AddPolicy("AllowAll", builder => 
      { 
       builder.AllowAnyOrigin() 
        .AllowAnyHeader() 
        .AllowAnyMethod() 
        .AllowCredentials(); 
      }); 

     }); 
     services.AddMvc(); 
    } 

और कोणीय 4 ग्राहक फ़ाइल पोस्ट करने के लिए

fileChange(event) { 
let fileList: FileList = event.target.files; 
if (fileList.length > 0) { 
    let file: File = fileList[0]; 
    let formData: FormData = new FormData(); 
    formData.append('uploadFile', file, file.name); 
    let headers = new Headers(); 
    /** No need to include Content-Type in Angular 4 */ 
    headers.append('Content-Type', 'multipart/form-data'); 
    headers.append('Accept', 'application/json'); 

    let options = new RequestOptions({ headers: headers, withCredentials: true }); 
    this.http.post("http://localhost:495/api//upload",formData, options) 
    .map(res => res.json()) 
    .catch(error => Observable.throw(error)) 
    .subscribe(
    data => console.log('success'), 
    error => console.log(error) 
    ) 
} 

मेरे त्रुटि कोशिश कर रहा है: मैं CORS के लिए WebAPI सेटअप। अनुरोधित संसाधन पर 'पहुंच-नियंत्रण-अनुमति-उत्पत्ति' शीर्षलेख मौजूद नहीं है। उत्पत्ति 'http://localhost:4200' इसलिए पहुंच की अनुमति नहीं है। प्रतिक्रिया HTTP स्थिति कोड 500

और प्रतिक्रिया हेडर था

सामग्री-लंबाई: 0 तिथि: सूर्य, 13 अगस्त 2017 13:13:09 GMT लगातार-प्रमाणीकरण: सच सर्वर: प्रकार का छोटा बाज एक्स संचालित-द्वारा: ASP.NET एक्स SourceFiles: = UTF-8 बी QzpcU291cmNlIENvZGVcUGFydG5lcnNoaXBDYXRhbG9nXFBhcnRuZXJzaGlwQ2F0YWxvZ1xQYXJ0bmVyc2hpcENhdGFsb2cuV2ViQXBpXGFwaVx1cGxvYWQ = =

किसी भी मदद की सराहना की है????!

services.AddCors(options => 
     { 
     options.AddPolicy("CorsPolicy", 
      builder => 
      builder.AllowAnyOrigin() 
      .AllowAnyMethod() 
      .WithExposedHeaders("content-disposition") 
      .AllowAnyHeader() 
      .AllowCredentials() 
      .SetPreflightMaxAge(TimeSpan.FromSeconds(3600))); 
     }); 

सूचना AllowCredentials():

+0

चेक http://enable-cors.org। ऐसा लगता है कि आप जिस तरह से कॉर्स जोड़ रहे हैं वह काम नहीं कर रहा है। Http अनुरोध के लिए क्रोम नेटवर्क टैब की जांच करें। अनुरोध और प्रतिक्रिया विवरण देखने के लिए व्यक्तिगत रूप से अनुरोध पर क्लिक करें। अपने आवेदन के माध्यम से कॉल करने के बजाय, फ़िशलर या क्रोम एक्सटेंशन जैसे डाकिया या उन्नत विश्राम के साथ जांचें। आप अलग-अलग वर्ग, विधि या web.config पर अलग-अलग कॉर्स को सक्षम करने का भी प्रयास कर सकते हैं। – Amit

+2

कृपया अपना अपवाद स्टैक/संदेश पोस्ट करें। जब एएसपी.नेट कोर में अपवाद होता है, तो अपवाद मिडलवेयर ** हेडर ** को साफ़ करेगा, इसलिए सीओआरएस हेडर खो जाते हैं। देखें कि अपवाद का कारण क्या है और अपवाद को हल करता है, तो यह काम करना चाहिए, अपवाद होता है जब एचटीपी कोड 500 वापस आ जाता है – Tseng

+0

क्या आप पुष्टि कर सकते हैं कि 'UserCors'' कॉन्फ़िगर करें 'विधि में किसी भी' UseMvc' कॉल से पहले है? – regnauld

उत्तर

0

आप कुछ इस तरह की जरूरत है।

आप भी अपनी Startup फ़ाइल में की जरूरत है, Configure विधि:

app.UseCors("CorsPolicy"); 
+0

हां, मेरे पास ऐप है। यूसेर्स ("अनुमति दें") और प्रीफलाइट जोड़ने से भी मदद नहीं मिली। –

संबंधित मुद्दे