द्वारा अनुमति नहीं है, मैं एक साधारण एमवीसी कंट्रोलर एक्शन बनाता हूं, जो कुछ जेसन डेटा लेता है - फिर सत्य या गलत लौटाता है।अजाक्स जेसन पोस्ट डोमेन पर नियंत्रक को पोस्ट करें, "एक्सेस-कंट्रोल-स्वीट-हेडर
[AllowCrossSiteJson]
public JsonResult AddPerson(Person person)
{
//do stuff with person object
return Json(true);
}
मैं जावास्क्रिप्ट से यह कहते हैं:
function saveData(person) {
var json = $.toJSON(person); //converts person object to json
$.ajax({
url: "http://somedomain.com/Ajax/AddPerson",
type: 'POST',
dataType: 'json',
data: json,
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert("ok");
}
});
}
सब कुछ जब तक मैं एक ही डोमेन पर कर रहा हूँ काम करता है, लेकिन जैसे ही मैं इसे किसी अन्य डोमेन से कहते हैं, मैं समस्याओं में चलाते हैं।
नियंत्रक पर एक एक्शन फ़िल्टर "AllowCrossSiteJson" है जो हेडर "एक्सेस-कंट्रोल-ऑब्जेक्ट-ऑरिजन" को "*" पर सेट करता है, जिससे किसी भी उत्पत्ति को नियंत्रक क्रिया तक पहुंचने की अनुमति मिलती है।
public class AllowCrossSiteJsonAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
base.OnActionExecuting(filterContext);
}
}
हालांकि - मैं तो जब डोमेन के बीच बुला, फ़ायरबग में इस त्रुटि मिलती है:
विकल्प http://somedomain.com/Ajax/AddPerson?packageId=3 500 (आंतरिक सर्वर त्रुटि) XMLHttpRequest http://somedomain.com/Ajax/AddPerson लोड नहीं कर सकता। अनुरोध हेडर फ़ील्ड एक्सेस-कंट्रोल-स्वीकृति-हेडर द्वारा सामग्री-प्रकार की अनुमति नहीं है।
यहां क्या गलत है?
मैं घंटों के लिए संभावित समाधान देख रहा हूं, और ऐसा लगता है कि विकल्प का उपयोग कर jquery के साथ कुछ करना है (जैसा कि मैं उम्मीद करता हूं पोस्ट नहीं)।
यदि यह वास्तव में समस्या है, तो मैं इसे कैसे ठीक कर सकता हूं?
मैं:
http://www.w3.org/TR/cors/
"सामग्री प्रकार" क्योंकि "application/json" मूल्यों यहां बताए गए मेल नहीं खाता शामिल किया जाना चाहिए तुमसे प्यार करता हूँ और अपने बच्चों को रखना चाहता हूँ। – Kjensen
क्या यह केवल अनुरोध प्राप्त करने के साथ काम नहीं करता है? –
हां, JSONP का jQuery कार्यान्वयन केवल GET अनुरोधों के साथ काम करता है। –