tôi bắt đầu nhận được vấn đề này khi tôi cài đặt ColdFusion 2016 Cập nhật 4.chức năng CFC không nhận đối số khi gọi từ javascript qua cfajaxproxy
HTML:
<input type='button' name='btn' value='Click me' onclick='proxyFunc();'>
Proxy:
<cfajaxproxy cfc='proxy' jsClassName="jsProxyClass" >
Javascript :
proxyFunc = function() {
var proxyObj = new jsProxyClass();
proxyObj.setHTTPMethod("post");
proxyObj.setCallbackHandler (function (result) {
console.log(result);
});
proxyObj.func('X');
}
CFC:
<cffunction name='func' access='remote' returntype='string' >
<cfargument name='arg' type='string' required='false' >
<cfreturn 'What is my arg? ' & arguments.arg>
</cffunction>
tôi đặt một breakpoint trên trong CFC của tôi và tìm thấy arguments.arg đó là trống và tôi có form.argumentcollection = { "arg": "X"}
Nếu tôi thay đổi setHTTPMethod từ "post" thành "get", arguments.arg = "X", như tôi mong đợi.
Tôi có rất nhiều mã mà đã làm việc tốt trước khi cập nhật CF này, và bây giờ nó là tất cả bị phá vỡ :(
Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn trước.
Điều gì sẽ xảy ra nếu bạn làm 'proxyObj.func ({'arg': 'X'});' Dù sao đi nữa, công cụ JS/AJAX của CF luôn hỏi về sự cố. Nếu nó hoạt động trong Update 3 và thay đổi trong Update 4, nó có thể là một lỗi, hãy xem xét báo cáo cho Adobe – Alex
Khi dòng 'proxyObj.setHTTPMethod (" post ");' i s nhận xét, nó hoạt động như nó cần; nhưng sử dụng yêu cầu 'GET'. –
@Alex Tôi đã thử 'proxyObj.func ({'arg': 'X'});' và arguments.arg vẫn còn trống, nhưng form.argumentcollection = {"arg": {"arg": "X"}} Tôi sẽ tiếp tục và báo cáo cho Adobe. –