Tôi có một dịch vụ JSON WCF và tôi đã viết một số javascript để truy cập dịch vụ như thế này,Dịch vụ WCF Không Với Phương pháp không được phép
function stuffClick2() {
$.ajax({
url: "http://192.168.54.98/JsonWCFService/Service1.svc/Post",
type: "POST",
contentType: "application/json",
data: '{"x":"1","y":"2","message":"The answer is: "}',
dataType: "html",
success: function(data) { $('body').html(data); }
});
}
Tôi đã viết một trang HTML trong đó có các javascript trên trong nó. Trang HTML được phân phát bằng IIS.
Khi tôi truy cập vào trang HTML bằng chrome trên máy tính của tôi, tôi thấy các hoạt động này được gửi đến các dịch vụ WCF JSON theo thứ tự này,
OPTIONS /JsonWCFService/Service1.svc/Post HTTP/1.1
POST /JsonWCFService/Service1.svc/Post HTTP/1.1
các tùy chọn đã thất bại trước đó, nhưng tôi đã OPTIONS gọi trở lại tiêu đề này mà sau đó làm cho nó hoạt động,
Access-Control-Allow-Origin: *
Nhưng khi gọi lại tôi đã định nghĩa ở trên không hoạt động,
success: function(data) { $('body').html(data); }
Tôi biết rằng các dịch vụ WCF đã trở lại một cái gì đó như thế này,
<b> The answer is 3 </b>
Nhưng khi gọi lại được gọi là giá trị của dữ liệu là một chuỗi rỗng.
Khi tôi chạy trang html trong một trình duyệt khác (IE) mà chỉ gây ra một cuộc gọi POST, nhưng không phải là một cuộc gọi OPTIONS thì nó hoạt động. Tôi nhận thấy rằng IE cảnh báo tôi rằng nó đặt ra một nguy cơ bảo mật và hỏi tôi có muốn tiếp tục không.
Bạn đang đi đúng hướng, nhưng thật kỳ lạ bởi vì tất cả đều hoạt động cho tôi sớm hơn trong ngày. – peter
OK, vì vậy tôi đã có các tùy chọn làm việc (bằng cách thêm một số mã trong phương thức Application_BeginRequest để trả về các tiêu đề mà OPTIONS đang yêu cầu). Vì vậy, bài đăng sau đó xảy ra sau đó, nhưng tôi nhận được một lỗi từ XMLHttpRequest - null gốc là không được phép. Vì vậy, nó có vẻ như tiêu đề nó được sử dụng trong bài viết là 'Origin: null' tôi có thể thấy nó trong fiddler. Tại sao điều này? – peter
Nếu tôi xem các hoạt động đăng bài hoạt động, không có tiêu đề gốc nào được chỉ định. điều này giải thích tại sao nó hoạt động. – peter