যখন আমার এই কোডটি হবে
$.ajax({
type: 'POST',
//contentType: "application/json",
url: 'http://localhost:16329/Hello',
data: { name: 'norm' },
dataType: 'json'
});
ফিডলারের মধ্যে আমি নিম্নলিখিত কাঁচা অনুরোধটি দেখতে পাচ্ছি
POST http://localhost:16329/Hello HTTP/1.1
Host: localhost:16329
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://localhost:14693/WebSite1/index.html
Content-Length: 9
Origin: http://localhost:14693
Pragma: no-cache
Cache-Control: no-cache
name=norm
তবে আমি যা চেষ্টা করছি তা হ'ল অ্যাপ্লিকেশন / x-www-form-urlencoded থেকে অ্যাপ্লিকেশন / জসন থেকে সামগ্রী-প্রকার সেট করা । কিন্তু এই কোড
$.ajax({
type: "POST",
contentType: "application/json",
url: 'http://localhost:16329/Hello',
data: { name: 'norm' },
dataType: "json"
});
অদ্ভুত অনুরোধ উত্পন্ন করে (যা আমি ফিডলারের মধ্যে দেখতে পাচ্ছি)
OPTIONS http://localhost:16329/Hello HTTP/1.1
Host: localhost:16329
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Origin: http://localhost:14693
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Pragma: no-cache
Cache-Control: no-cache
তা কেন? অপশনটি যখন সেখানে পোস্ট করা উচিত? এবং আমার কনটেন্ট-টাইপটি অ্যাপ্লিকেশন / জসন এ সেট করা আছে? এবং অনুরোধের প্যারামিটারগুলি কোনও কারণে চলে গেছে।
আপডেট 1
সার্ভারে আমার সত্যিই সহজ RESTful পরিষেবা আছে।
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class RestfulService : IRestfulService
{
[WebInvoke(
Method = "POST",
UriTemplate = "Hello",
ResponseFormat = WebMessageFormat.Json)]
public string HelloWorld(string name)
{
return "hello, " + name;
}
}
তবে কোনও কারণে আমি পরামিতিগুলির সাথে এই পদ্ধতিটি কল করতে পারি না।
আপডেট 2
এত দিন উত্তর না দেওয়ার জন্য দুঃখিত।
আমি এই সার্ভারগুলিকে আমার সার্ভার প্রতিক্রিয়াতে যুক্ত করেছি
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: POST, GET, OPTIONS
এটি সাহায্য করেনি, আমার কাছে পদ্ধতিটি সার্ভার থেকে ত্রুটি অনুমোদিত নয় ।
আমার ফিডলার যা বলে তা এখানে
সুতরাং, এখন আমি নিশ্চিত হতে পারি যে আমার সার্ভার পোষ্ট, জিইটি, বিকল্পগুলি গ্রহণ করে (যদি প্রতিক্রিয়ার শিরোনামগুলি আমার প্রত্যাশা মতো কাজ করে)। তবে কেন "পদ্ধতির অনুমতি নেই"?
সার্ভার থেকে ওয়েবভিউ প্রতিক্রিয়াতে (আপনি উপরের ছবিতে কাঁচা প্রতিক্রিয়া দেখতে পাবেন ) দেখতে এটির মতো লাগে