2017-08-30 18 views
7

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.

+2

Đ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

+0

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'. –

+1

@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. –

Trả lời

Các vấn đề liên quan